[英]Node.js proxy through Apache on Amazon EC2
我正在嘗試在我的EC2實例上為我的Node.js服務器設置代理,所以我可以通過http://*.amazonaws.com/node
訪問它,其中*是URI的其余部分。 我通過使用以下命令編輯/etc/httpd/conf/httpd.conf
設置代理:
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /node http://*.amazonaws.com:3000
ProxyPassReverse /node http://*.amazonaws.com:3000
我的Node.js server.js文件如下所示:
var port = process.env.PORT || 3000;
var host = '*.amazonaws.com' || process.env.HOST || '127.0.0.1';
因此,當我啟動並運行所有內容時,我可以訪問/ node ,但是,Node.js的/ public目錄沒有被用作Document的根目錄,所以我得到任何文件index.html包含404s因為它假設它在/ public目錄。 例如,Firebug報告了一個404的http://*.amazonaws.com/javascripts/rails.js
和另外3個文件,這意味着它沒有訪問Node.js的/ public目錄。
值得注意的是,如果我編輯index.html文件中的路徑,一切正常,但我寧願不必這樣做......如果我在httpd.conf中取出ProxyPass配置,只需訪問節點來自http://*.amazonaws.com:3000
服務器,它可以工作......但理想情況下,我不想這樣做並能夠做/節點 。
我想知道的是,我的代理配置是否正確,如果沒有,我該如何修復它,以便當我訪問/ node時 ,所有請求的文件都會被自己重定向?
我同意評論者的意見,如果你使用快速靜態中間件,你可能會錯誤配置快遞。
但是,如果您希望apache處理靜態請求,則這是用於生成ProxyPass異常的apache配置語法:
ProxyPass /javascript/ !
您還需要確保設置了DocumentRoot
,但是這應該通過任何對javascript目錄的請求傳遞給常規apache,它將以您配置的任何方式處理對該目錄的請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.