是否可以在同一台机器上运行 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