首頁  >  問答  >  主體

nodejs-express - 用nginx配置某個域名的80端口,如果根路徑獲取不到靜態文件則轉發到nodejs提供服務的9999端口,如何實現?

我現在寫的程式碼如下,不管用。
是需要寫rewrite規則,用正規表示式,或是if之類的?

以及:如果在nodejs中設定靜態檔案目錄,app.use(express.static(__dirname));這樣,效能上會比nginx直接判斷處理低嗎?

server {
        listen 80;
        server_name xxx.wechattest.com;
        root /path/to/static/root;
        index index.html;
        
        location / {

                proxy_pass http://127.0.0.1:9999;//nodejs service is running on port 9999

                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                client_max_body_size 100M;
                client_body_buffer_size 1m;
                proxy_intercept_errors on;
                proxy_buffering off;
                proxy_buffer_size 128k;
                proxy_buffers 256 16k;
                proxy_busy_buffers_size 256k;
                proxy_temp_file_write_size 256k;
                proxy_max_temp_file_size 0;
                proxy_read_timeout 300;
        }
}
我想大声告诉你我想大声告诉你2736 天前745

全部回覆(3)我來回復

  • 巴扎黑

    巴扎黑2017-05-16 17:22:54

    雷雷

    回覆
    0
  • 为情所困

    为情所困2017-05-16 17:22:54

    你設定一下404狀態時轉送。另外,你現在的設定是直接使用了反向代理,所有到80埠的都轉向9999埠的代理伺服器了。

    回覆
    0
  • 为情所困

    为情所困2017-05-16 17:22:54

    可以使用try_files 或 error_page兩個指令都能實現你想要的效果。

    同時還可以使用proxy_store實現完全靜態化頁面。

    回覆
    0
  • 取消回覆