apache - 将 apache 设置为 nodejs 应用程序的别名?

标签 apache routing node.js alias ports

我有一个 PHP 应用程序通过端口 80 上的 apache 提供服务。我有一个在端口 3000 上独立运行的 nodejs 应用程序。我想从 PHP 生成的客户端代码向 nodejs 应用程序发出 ajax 请求。问题是同源策略不允许不同的端口,我不能在端口 80 上同时运行 nodejs 和 apache。

我最想做的是从客户端的角度来看,它们似乎都在端口 80 上运行。我如何设置 apache 以重新路由/别名/任何对 nodejs 应用程序的特定请求?

希望这是有道理的。注意:不确定这是否可行,或者我是否以正确的方式进行 - 欢迎提出建议。

最佳答案

您可以使用反向代理来做到这一点。添加 mod_proxy 并在 vhost 文件中的主域下设置一个位置,以代理到本地主机上的端口 3000。基本上是这样的:

<VirtualHost *:80>
 ServerName example.com
 <Location /api>
   ProxyPass /api http://localhost:3000/
   ProxyPassReverse /api http://localhost:3000/
 </Location>
</VirtualHost>

关于apache - 将 apache 设置为 nodejs 应用程序的别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6477849/

相关文章:

java - JMeter:java.lang.IllegalArgumentException:URLDecoder:转义(%)模式中的非法十六进制字符 - 对于输入字符串: "Õ­"

web-services - Apache Http 服务器 POST 400

CodeIgniter 路由总是通过 index.php?

javascript - 将错误返回到 Node.js 中的回调

javascript - Node : use import in only one file

php - UTF-8贯穿始终

apache - 是什么让 nginx/apache 成为 web 服务器,而 HAProxy 不是?

ruby-on-rails - 如何使用 Rspec 测试带有嵌套路由的 Controller ?

带参数的 AngularJs 路由

JavaScript 合并具有相同键的对象并将它们的值相加