nginx 配置单IP无域名多端口实现静态文件和node服务并存

字数 183阅读 154

最近部署一个 puppeteer 的项目到腾讯云服务器上。
启动 node 项目的服务,腾讯云安全组打开 8888 端口。
配置 nginx 的时候发现 80 或者 8888 端口都是访问到node项目去了
以下为服务端的 nginx.conf 配置

  # 这部分为腾讯云实验室 nginx 课程的配置,用以实现静态项目的访问
  server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /data/www;
        include /etc/nginx/default.d/*.conf;
        location / {
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
  }
# 这部分为转发监听端口的配置
  server {
        listen    8080;
        server_name 111.111.111.111;
        index index.html index.htm index.php;
        location / {
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_pass http://127.0.0.1:8888;
            proxy_redirect default;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Nginx-Proxy true;
            proxy_redirect off;
            add_header 'Access-Control-Allow-Headers' 'Content-Type';
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Methods' 'GET';
        }
   }

相当于我对111.111.111.111:8080的请求都会转发到服务器端口号为 8888 的 node 服务上, 从而实现 nginx 配置单IP无域名多端口实现静态文件和 node 服务并存的效果。

这个配置折腾了我好些时间,也算是把 nginx 的一些配置弄熟悉了,学到了东西,也希望对大家有所帮助。

推荐阅读更多精彩内容