如何将对子域的请求代理到同一 IP 上的不同端口?

如何将对子域的请求代理到同一 IP 上的不同端口?

我正在运行 Apache 2.4。我的情况是,我在 上运行一个 Web 应用程序:4567,我想将其代理到subdomain.mydomain.com

目前,我已按照应用程序文档进行设置,但它正在将其代理到mydomain.com。这是我的代理设置(来自 httpd.conf 的底部)

ProxyRequests off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /socket.io/1/websocket ws://127.0.0.1:4567/socket.io/1/websocket
ProxyPassReverse /socket.io/1/websocket
ws://127.0.0.1:4567/socket.io/1/websocket

ProxyPass /socket.io/ http://127.0.0.1:4567/socket.io/
ProxyPassReverse /socket.io/ http://127.0.0.1:4567/socket.io/

ProxyPass / http://127.0.0.1:4567/
ProxyPassReverse / http://127.0.0.1:4567/

答案1

你需要这样的东西:

<VirtualHost *:80>
    ServerName subdomain.mydomain.com

    ProxyPass / http://localhost:4567/
    ProxyPassReverse / http://localhost:4567/
</VirtualHost>

当 apache 收到 http 请求时,它必须决定应用哪种配置。当主机头与ServerName虚拟主机的匹配时,它会应用 vhost 内的配置。

还要确保你有修改代理服务器代理 websocket 时启用。

相关内容