Запуск приложения NodeJS на сервере с вестой CP - PullRequest
0 голосов
/ 26 июня 2019

Я не могу запустить свое приложение на Ubuntu VPS с VestaCP.

Я запустил приложение pm2 на сервере с портом 3000.

До этого я сделал несколько приготовлений:

1) Установил давайте шифруем сертификаты

2) Применен шаблон force-https, так что ngnix перенаправляет меня с HTTP

VestaCP сгенерировал 2 конфига ngnix - my-site.com.nginx.ssl.conf и my-site.com.nginx.conf

Когда я запускаю свой сайт на my-site.com - ошибка 403

Решение довольно простое - я должен измениться proxy_pass https://10.223.41.249:8443; до proxy_pass https://10.223.41.249:3000; Но в этом случае у меня 500 ошибок. И я действительно запутался в настройке ...

Это конфиги:

Обратите внимание, что 10.223.41.249 - это внутренний IP-адрес моего сервера. Я полагаю, данные Вестой.

# my-site.com.nginx.conf
server {
    listen      10.223.41.249:80;
    server_name my-site.come www.my-site.com;
    location / {
        rewrite ^(.*) https://my-site.com$1 permanent;
    }
include /home/admin/conf/web/*nginx.my-site.com.conf_letsencrypt;
}
# my-site.com.nginx.ssl.conf
server {
    listen      10.223.41.249:443;
    server_name my-site.com www.my-site.com;
    ssl         on;
    ssl_certificate      /home/admin/conf/web/ssl.my-site.com.pem;
    ssl_certificate_key  /home/admin/conf/web/ssl.my-site.com.key;
    error_log  /var/log/apache2/domains/my-site.com.error.log error;

    location / {
        proxy_pass      https://10.223.41.249:3000;
        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc|docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|e$
            root           /home/admin/web/my-site.com/public_html;
            access_log     /var/log/apache2/domains/my-site.log combined;
            access_log     /var/log/apache2/domains/my-site.site.bytes bytes;
            expires        max;
            try_files      $uri @fallback;
        }
    }

    location /error/ {
        alias   /home/admin/web/my-site.com/document_errors/;
    }

    location @fallback {
        proxy_pass      https://10.223.41.249:3000;
    }

    location ~ /\.ht    {return 404;}
    location ~ /\.svn/  {return 404;}
    location ~ /\.git/  {return 404;}
    location ~ /\.hg/   {return 404;}
    location ~ /\.bzr/  {return 404;}

    include /home/admin/conf/web/*nginx.my-site.com.conf_letsencrypt;
    include /home/admin/conf/web/snginx.my-site.com.conf*;
}

Моя сетевая активность

root@46:/home/admin/conf/web# sudo netstat -ltunp | grep 80
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      7804/mongod
tcp        0      0 10.223.41.249:80        0.0.0.0:*               LISTEN      6225/nginx: master
tcp        0      0 10.223.41.249:8080      0.0.0.0:*               LISTEN      2778/apache2
tcp        0      0 127.0.0.1:8081          0.0.0.0:*               LISTEN      2778/apache2
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN      26350/nginx: master
tcp        0      0 127.0.0.1:8084          0.0.0.0:*               LISTEN      6225/nginx: master
root@46:/home/admin/conf/web# sudo netstat -ltunp | grep 443
tcp        0      0 10.223.41.249:443       0.0.0.0:*               LISTEN      6225/nginx: master
tcp        0      0 10.223.41.249:8443      0.0.0.0:*               LISTEN      2778/apache2
root@46:/home/admin/conf/web# sudo netstat -ltunp | grep 8443
tcp        0      0 10.223.41.249:8443      0.0.0.0:*               LISTEN      2778/apache2
root@46:/home/admin/conf/web# sudo netstat -ltunp | grep 3000
tcp6       0      0 :::3000                 :::*                    LISTEN      2146/node
root@46:/home/admin/conf/web#

Надеюсь, это поможет

В моем приложении также есть конфиг. Я не уверен, но я подозреваю, что это тоже

module.exports = {
  'process.env.BASE_URL': prod
    ? 'https://my-site.com'
    : 'http://localhost:3000'
};

...