Назад | Перейти на главную страницу

Ошибка расположения nginx + pm2

совершенно новичок в nginx и изо всех сил пытается сделать самую простую вещь, работающую на сервере digitalocean ubuntu 16.04. У меня есть приложение node.js, работающее за pm2, и оно отлично работает с запросами на mydomain.com:5002/endpoint. Однако я не могу заставить его работать в отдельном месте, например / app, постоянно получая 404. вот /etc/nginx/sites-available/default :

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        server_name mydomain.com;
        location /app/ {
                proxy_pass http://localhost:5002;
        }

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }



        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php7.0-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
        #       # With php7.0-fpm:
        #       fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}

Если у вас работает pm2 example.com:5002/endpoint чем ваш блок местоположения должен указать:

location /app { proxy_pass http://localhost:5002/endpoint; }

и вы должны иметь доступ к своему приложению nodejs по URL-адресу: http://example.com/app

для получения дополнительной информации вы можете обратиться к: https://devtidbits.com/2015/12/08/nginx-as-a-reverse-proxy-to-apache-tomcat/ он имеет дело с той же настройкой, только порт отличается.