![Htaccess 通过隧道连接到另一个端口上的本地服务器?](https://linux22.com/image/543427/Htaccess%20%E9%80%9A%E8%BF%87%E9%9A%A7%E9%81%93%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%AB%AF%E5%8F%A3%E4%B8%8A%E7%9A%84%E6%9C%AC%E5%9C%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
是否可以在同一台机器上运行 2 个具有不同端口的 Web 服务器,然后使用 htaccess 根据 rewritecond 将流量从 1 个服务器隧道传输到另一个服务器?基本上,当满足某个条件时,我希望请求由我的其他 Web 服务器处理,并且我不想返回移动的响应。
答案1
是的,这是可能的。如果第一台服务器是 Apache,您可以使用 mod_proxy 将其用作反向代理来执行此操作。
ProxyPass /abc http://second-web-server.yourdomain.com/def
ProxyPassReverse /abc http://second-web-server.yourdomain.com/def
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html#proxypass
如果您的代理要求更复杂,您还可以告诉 mod_rewrite 使用“P”标志将重写规则的替换部分发送给 mod_proxy:
RewriteRule ^/abc$ http://second-web-server.yourdomain.com/def [P]
看起来(我不熟悉 litespeed)litespeed 重写引擎与 Apache 相同:
http://www.litespeedtech.com/docs/webserver/config/rewrite/
因此,要测试是否存在 cookie,您可以使用如下重写规则:
RewriteCond %{HTTP_COOKIE} !^Your_Cookie_Name$
RewriteRule ^/(.*) http://second-web-server.yourdomain.com/$1 [p]
这里有一个 litespeed rewrite+proxy 的示例:
http://www.litespeedtech.com/support/forum/showthread.php?t=2879