我有一个PHP应用程序通过端口80上的apache提供服务。我有一个nodejs应用程序在端口3000上独立运行。我想从PHP生成的客户端代码向nodejs应用程序发出ajax请求。问题是相同的源策略不允许不同的端口,我不能在端口80上运行nodejs和apache。
我理想的做法是让它们从客户端的角度看起来都在端口80上运行。如何设置apache以重新路由/别名/对nodejs应用程序的任何特定请求?
希望这是有道理的。注意:不确定这是否可行,或者我是否以正确的方式进行 - 请接受建议。
答案 0 :(得分:9)
你可以通过反向代理来做到这一点。添加mod_proxy并在vhost文件中的主域下设置一个位置,以代理到localhost上的端口3000。基本上是这样的:
<VirtualHost *:80>
ServerName example.com
<Location /api>
ProxyPass /api http://localhost:3000/
ProxyPassReverse /api http://localhost:3000/
</Location>
</VirtualHost>