繁体   English   中英

nginx 反向代理nodejs子域

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM