Я новичок в настройке VMS с использованием nginx
и forever
с nodejs
/ meanjs
.Моя цель состояла в том, чтобы настроить прокси-сервер так, чтобы он мог обслуживать мое приложение на порте 80 по умолчанию, а не на порте 3000.
Пока возился с фрагментами блоков сервера nginx из множества разных онлайн-примеров, я начал поражатьстена с ошибками "502 Bad Gateway".Через много проб и ошибок я наконец смог решить это условие.
В конце концов, то, что казалось эквивалентными способами использования forever
для запуска node
, привело к совершенно другим результатам.
Что приводит к ошибке 502 Bad Gateway:
При выдаче из корня сервера с использованием абсолютного пути к сценарию узла эта команда завершилась неудачно с 502:
$ cd /
$ sudo forever start --spinSleepTime 10000 /var/www/mydomain.com/server.js
На самом деле, в этом случае, если node
вообще не работает, я также получаю ошибку 502.
Что работает:
Два способа, которые работали, либо запускали forever
с моегокорневой каталог проекта без указания пути к скрипту узла (только имя файла) или снова из корневого каталога сервера, но с использованием параметра sourceDir
:
$ cd /var/www/mydomain.com
$ sudo forever start --spinSleepTime 10000 server.js
или:
$ cd /
$ sudo forever start --spinSleepTime 10000 --sourceDir /var/www/shotplot.info/ server.js
Просто для полноты я также включу блок сервера nginx на случай, если это поможет обеспечить некоторый дополнительный контекст:
upstream nodejs \{
server 127.0.0.1:3000;
}
server {
root /var/www/mydomain.com;
server_name mydomain.com www.mydomain.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://nodejs;
proxy_redirect off;
}
}