[英]nginx reverse proxy nodejs subdomain
我有问题。
我有一个节点应用程序在 Plesk 内的子域上运行:3000
。
我有子域https://xxx.flamingocams.co.uk
; 当我导航到子域时,它会显示默认的 plesk 页面,这就是问题所在;
我试图将节点应用程序的端口更改为 80 和 443,但这与 plesk 冲突。 访问https://xxx.flamingocams.co.uk:3000
上的节点应用程序时我没有问题。
现在我看到其他人尝试的唯一另一件事是反向代理。
我找到了这个例子;
server {
listen 0.0.0.0:80;
server_name xxx.flamingocams.co.uk;
access_log "/var/log/nginx/xxxflam.log";
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_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_cache_bypass $http_upgrade;
}
}
我正在运行Plesk Obsidian v18.0.34_build1800210325.10 os_Ubuntu 16.04
所以我的问题是,我应该在哪里放置这个配置以使子域仅指向 nodejs 应用程序?
这个配置是否适合我想要实现的目标?
我对 nginx 配置知之甚少,我很抱歉
我已经查看了这篇文章,答案说我需要添加一个配置 /etc/nginx/sites-available/yourdomain.com 但是我没有目录sites-available
回复评论 // xxx.flamingocams.co.uk.conf
server {
listen 0.0.0.0:80;
server_name xxx.flamingocams.co.uk;
access_log "/var/log/nginx/xxxflam.log";
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_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_cache_bypass $http_upgrade;
}
}
server {
listen 0.0.0.0:443;
server_name xxx.flamingocams.co.uk;
ssl_certificate /opt/psa/var/certificates/scfZc0CwJ;
ssl_certificate_key /opt/psa/var/certificates/scfZc0CwJ;
server_name xxx.flamingocams.co.uk;
access_log "/var/log/nginx/xxxflam.log";
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_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_cache_bypass $http_upgrade;
}
}
在您的配置中,服务器仅在端口 80 上运行
listen 0.0.0.0:80;
使用此配置,页面: http://xxx.flamingocams.co.uk将显示您的应用程序(请求到达 NginX 代理,然后转发到端口 3000 上的 NodeJS 应用程序)。 因为端口 443 上没有任何server
块监听,所以会显示默认的 Plesk 屏幕。
为了让您的应用程序在 https 上运行,您需要在 NginX 上监听端口 443,您还需要配置 SSL 证书
配置将是:
server {
listen 0.0.0.0:443;
server_name xxx.flamingocams.co.uk;
ssl_certificate path_to_your_ssl_certificate;
ssl_certificate_key path_to_your_ssl_key;
# The rest of your config is ok :)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.