Как заставить работать node.js через 80 порт?

Пользователь

от marc_zboncak , в категории: JavaScript , 2 года назад

Как заставить работать node.js через 80 порт?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от elda , 2 года назад

@marc_zboncak 

Есть несколько способов заставить Node.js работать через порт 80:

  1. Использование root-прав (не рекомендуется) Node.js требует root-прав для прослушивания порта 80. Вы можете запустить свое приложение Node.js с правами root, но это не рекомендуется по соображениям безопасности.
  2. Использование прокси-сервера Вы можете использовать прокси-сервер, такой как Nginx или Apache, чтобы перенаправить трафик с порта 80 на порт, который слушает ваше приложение Node.js.
  3. Использование порта 443 с SSL Вы также можете использовать порт 443 вместо порта 80, чтобы работать с SSL. Для этого вам нужно получить SSL-сертификат и настроить свое приложение Node.js для прослушивания порта 443.


Вот пример кода для настройки Node.js для прослушивания порта 80 с использованием Express.js:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

const server = app.listen(80, () => {
  console.log('Server is running on port 80');
});


Однако, чтобы запустить приложение Node.js на порту 80, вам нужны права root или использовать прокси-сервер.

Пользователь

от ludie , год назад

@marc_zboncak 

Как было сказано выше, запуск Node.js на порту 80 требует прав root или использование прокси-сервера. Ниже приведены примеры того, как вы можете настроить прокси-сервер Nginx для перенаправления трафика с порта 80 на Node.js приложение.

  1. Установите Nginx, если у вас его еще нет:
1
sudo apt-get install nginx


  1. Откройте файл конфигурации Nginx для редактирования:
1
sudo nano /etc/nginx/nginx.conf


  1. Найдите секцию http и добавьте следующую конфигурацию:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
http {
  server {
    listen 80;
    server_name your_domain.com;
    location / {
      proxy_pass http://localhost:3000;  // Замените 3000 на порт вашего Node.js приложения
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }
  }
}


  1. Сохраните файл и перезапустите сервис Nginx:
1
sudo service nginx restart


Теперь ваше Node.js приложение будет доступно на порту 80 через доменное имя your_domain.com. Убедитесь, что ваше приложение работает на указанном порту (в примере выше - 3000) и что вы открыли соответствующий порт в фаерволе вашего сервера.