[英]Heroku PHP app with Node.js app in subfolder, or AWS
如何配置Heroku或AWS,以便我有一個PHP應用程序,它在子文件夾中運行Node.js應用程序?
我想實現這一目標:
web/app.php <-- PHP entry point (Symfony front controller)
web/proxy/ <-- Node.js entry point
app.js <-- Node.js app
我的Node.js應用程序將是以下Web代理: https : //github.com/nfriedly/node-unblocker
我已經嘗試過這個Heroku buildpack https://github.com/dzuelke/heroku-multipack-nodejs-php-example,但是這似乎只是使用Node.js來安裝Bower依賴項,而不是創建Node.js服務器。
我可以進行所需的設置還是有更好的解決方案? 我需要PHP應用程序和Node.js Web代理在同一域上運行。
更新
感謝@mbaird的建議,我現在開始對它有了更多的了解,在進行了更多谷歌搜索之后,我設法使用Apache代理在本地工作,例如:
<Location "/proxy">
ProxyPass http://localhost:8080/proxy
ProxyPassReverse http://localhost:8080/proxy
</Location>
端口8080是我的本地Node.js服務器正在偵聽的端口。
但是,我讀過有關該解決方案的評論。 例如 :“此解決方案遠非最佳選擇。通過Apache發出的每個請求都將導致Apache線程等待/阻塞,直到從Node.js進程返回響應為止。”
iaincollins建議使用“ HA代理或Varnish將不同的路徑傳遞到不同的服務器”。 我想知道這是否更好,那么對於AWS或Heroku而言,最好的解決方案可能是使用CloudFront的路徑模式將不同的路徑定向到不同的來源。
這聽起來是更好的解決方案嗎?
此外,關於ElasticBeanstalk,這是否真的只是包括EC2在內的幾種服務的打包,那么是否不可以在ElasticBeanstalk EC2實例上安裝Node.js服務器? 我可以為PHP和Node.js使用單獨的EC2實例,但這會更昂貴,至少目前是在我僅使用1個實例的情況下。
我什至不知道你怎么會在Heroku上做到這一點,如果有的話。 在AWS上,您可以在EC2服務器上設置Apache。 將Apache配置為在特定路徑上服務您的PHP應用程序,並在其他URL路徑上代理對NodeJS應用程序的請求。
編輯以回答評論中的問題:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.