Я не могу запустить свое приложение на 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'
};