我可以爲我的靜態網站內容提供服務並在同一個EC2實例上運行節點服務器。 我的ec2實例是一個t2.micro ubuntu 14.04映像。 完成的任務: 已安裝Nodejs,npm。配置Nginx的配置。設置../../www/目錄通過nginx提供內容。靜態網站和節點服務器在同一個EC2實例上
我有一個域xyz.com將其@值指向與實例關聯的彈性IP。
上傳網站文件到目錄。所以現在如果我訪問xyz.com,我通過nginx獲取我的網站內容。 很酷。
但節點應用程序不可訪問。 我節點應用程序在端口3000
上運行嘗試添加
server {
root /var/www;
index: example.js
server_name _;
location/{
proxy_pass http://127.0.0.1:3000;
expires 30d; # not required
access_log off;
}
}
的/ etc/nginx的/網站,提供給指向節點服務器。
很酷。現在xyz.com運行我的節點應用程序。但是,沒有網站內容,現在訪問: ( 如果我嘗試打它的路線在我的快遞路線的定義有在服務器端沒有記錄任何API只是一個nginx的404錯誤 如:
XYZ .COM/myroute -404 nginx的錯誤,工作在localhost:3000/myroute
xyz.com/ - 返回/xyz.com:3000默認路由集合 - 不列入打擊節點服務器沒有日誌
很多關於線路資源建議重新路由安全區域中的端口80以通過運行節點的端口提供內容。我可以用這種方式運行節點應用程序,但整個網站都必須通過節點進行服務。
我想單獨運行它們。
xyz.com - 提供我的網站
xyz.com:3000 - 讓我打我的節點服務器我應該到兩個不同的實例分開的應用和網站?他們如何被路由?
您只能在端口80上打開一個Web服務器,但您可以讓一個Web服務器服務於2個後端。請參閱http://stackoverflow.com/questions/13240840/nginx-reverse-proxy-multiple-backends –
因此,如果我向實例添加另一個彈性IP並將其服務器位置設置爲通過nginx代理,只爲nodejs應用提供服務,那會有用嗎? –
你不需要另一個IP,你只需要向nginx澄清你想要的。如果兩個站點的域名相同,你的'位置/'塊對節點的路由太多,「隱藏」主站點的內容。這兩個站點的路徑必須是明確無誤的,例如,節點應用程序中的所有內容可能位於'location/api {...}'之下。 –