0
我試圖託管通過Nginx代理的多個Node JS服務器,它正常工作。一臺服務器託管在'/'上,另一臺服務器託管在例如'/ one'上。下面是相關的Nginx配置。使用Nginx和多個NodeJS應用程序維護結構
upstream host_com { server 127.0.0.1:3000; keepalive 8; } upstream one_host_com { server 127.0.0.1:3010; keepalive 8; } server { listen 80; access_log /var/log/nginx/host.log; location/{ proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://host_com/; proxy_redirect off; } location /one { rewrite ^(/one)+/(.*)$ /$2 break; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $proxy_host; #$http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://one_host_com/; proxy_redirect off; }
}
然而,當我做一個AJAX調用從 '/一個' 測試平臺,象下面這樣:
$ .getJSON( '/ get_stuff',函數(data){..});
當我希望它轉到'/ one/get_stuff'時,該帖子轉到'/ get_stuff'。我怎樣才能讓Nginx指向NodeJS,但仍然保持該位置?有沒有更好的方法來實現這一點?
如果沒有斜槓,請按照您的要求運行調用,仍然將請求URL設置爲「http://(ip)/ get_stuff」,但仍未調用「one」測試平臺。 – 2014-12-02 17:24:39
經過一些修補之後,我發現你的步驟確實有幫助,但我還需要在HTML中設置基礎, '。一旦完成相對URL的AJAX工作,只要我在Nginx配置中重寫。 –
2014-12-02 18:16:34
更多解釋;設置基地實際上並非必要。問題是我正在訪問'http://(ip)/ one'而沒有結尾的斜槓。隨着斜線,相對網址工作正常。看起來我只需要在我的Nginx配置中捕捉到它。 – 2014-12-02 18:25:41