2017-02-22 13 views
0

Я пытаюсь настроить Nginx как обратный прокси для доступа к нескольким приложениям NodeJS, запущенным на одном сервере.Nginx не слушает порты

У меня есть мое nodeJS приложений, работающие с PM2 и всем это кажется прекрасным:

enter image description here

Моего nodeJS приложение простое nodeJS приложения, сгенерированный с экспресс-генератором, так как предполагается, на порту 3000.

Я также создал мой Nginx с помощью следующей конфигурации

server { 
    listen 1004; 

    server_name pumadashboard.com; 

    location/{ 
     proxy_pass http://127.0.0.1:3000; 
     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; 
    } 
} 

Однако, когда я свернуться 127.0.0. 1: 1004 Я получаю ошибку badGateway от Nginx. Я также не могу получить доступ к pumadashboard.com из любой точки моей локальной сети, он просто загружается до таймаута.

+0

Название это вводит в заблуждение. Если вы получаете ошибку от nginx, она определенно слушает порт. Проверить nginx's error.log –

ответ

0

Что вы получите, если вы делаете:

curl http://locahost:3000 

Это должно вернуть ответ и хотел, чтобы вы поняли, если приложение запускается надлежащим образом.

Эта конфигурация Nginx работает для меня

upstream pumadashboard.com { 
    server 127.0.0.1:3010; 
} 

server { 
    listen 80; 
    server_name pumadashboard.com; 
    root <path to your node application>; 

    access_log /var/log/nginx/your-access.access.log; 
    error_log /var/log/nginx/your-error.error.log; 

    add_header X-Frame-Options DENY; 
    add_header X-Content-Type-Options nosniff; 

    location/{ 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_set_header X-NginX-Proxy true; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_max_temp_file_size 0; 
     proxy_pass http://pumadashboard.com/; 
     proxy_redirect off; 
     proxy_read_timeout 240s; 
    } 
} 
+0

не работает, все, что происходит, - это если я теперь обращаюсь к своему веб-серверу с IP-адресом в моем браузере, не указав порт, так как 192.168.0.100 он отправляется в приложение, однако URL-адрес не работает , –

+0

Первый шаг работает. Тот факт, что вы можете видеть свое приложение с помощью ip, без указания порта, означает, что nginx перенаправляет трафик на ваше приложение. О домене - еще одна проблема, вероятно, что-то неправильно на вашем провайдере. Вы используете aws route53? –

0

Попробуйте добавить

proxy_set_header X-Forwarded-Host $http_host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_set_header X-Forwarded-Port 80; 

к вашему location / блок

+0

не работает: / –