nginx 配置單IP無域名多埠實現靜態檔案和node服務並存

weixin_33850890發表於2018-06-03

最近部署一個 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 的一些配置弄熟悉了,學到了東西,也希望對大家有所幫助。

相關文章