Apache httpd 上的选择性代理端口转发

Posted

技术标签:

【中文标题】Apache httpd 上的选择性代理端口转发【英文标题】:selective proxy port forwarding on Apache httpd 【发布时间】:2013-09-04 20:15:58 【问题描述】:

我正在尝试将 wordpress 集成到我的站点中,该站点在 Nodejs 服务器上运行,启用了 Apache Httpd 端口转发以将所有请求从 80 端口转发到 Nodejs 端口 9000。我已将 wordpress 安装到 Apache httpd /www/blog 文件夹中。

现在,我想编辑我的 httpd.conf,以便我来自客户端的所有请求仍应转发到 nodejs 服务器,但我的 blog.example.com 调用不应被代理转发并且它们应指向 /www/博客文件夹。这可能吗 ?

这是来自 httpd.conf 的 Virtualhost 代码:-

    <VirtualHost *:80>
        ProxyPreserveHost On
        ProxyPass / http://localhost:9000/
        ProxyPassReverse / http://localhost:9000/
        ServerName example.com
    </VirtualHost>

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

这对我有用。可能对其他人有一些帮助。

    <VirtualHost *:80>
         RewriteEngine on
         RewriteCond %HTTP_HOST ^blog\.example\.com
         RewriteRule ^(.*)$ http://www\.example\.com/blog/$1 [L]

         ProxyPreserveHost On
         ProxyPass /blog !
         ProxyPass / http://localhost:9000/
         ProxyPassReverse / http://localhost:9000/
         ServerName example.com
    </VirtualHost>

【讨论】:

以上是关于Apache httpd 上的选择性代理端口转发的主要内容,如果未能解决你的问题,请参考以下文章

mac nginx 反向代理解决微信小程序端口问题

PHPxampp配置多个监听端口和不同的网站目录(转)

如何开启apache虚拟目录反向代理

apache 80 端口 反向代理 tomcat 8080端口

apache 配置反向代理 设置

Nginx和Apache 转发网络问题