nginx反向代理nodejs子域
nginx reverse proxy nodejs subdomain
我有问题。
我在 Plesk 内部子域的 :3000
上有一个节点应用程序 运行。
我有子域 https://xxx.flamingocams.co.uk
;
当我导航到子域时,它显示默认的 plesk 页面,这就是问题所在;
我尝试将节点应用程序的端口更改为 80 和 443,但这与 plesk 冲突。
我在 https://xxx.flamingocams.co.uk:3000
.
上访问节点应用程序时没有问题
现在我看到其他人尝试的唯一另一件事是反向代理;
我找到了这个 example;
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 配置知之甚少,抱歉
我已经查看了这个 post 并且答案说我需要添加一个配置 /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 :)
}
我有问题。
我在 Plesk 内部子域的 :3000
上有一个节点应用程序 运行。
我有子域 https://xxx.flamingocams.co.uk
;
当我导航到子域时,它显示默认的 plesk 页面,这就是问题所在;
我尝试将节点应用程序的端口更改为 80 和 443,但这与 plesk 冲突。
我在 https://xxx.flamingocams.co.uk:3000
.
现在我看到其他人尝试的唯一另一件事是反向代理;
我找到了这个 example;
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 配置知之甚少,抱歉
我已经查看了这个 post 并且答案说我需要添加一个配置 /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 :)
}