日期:2014-05-16 浏览次数:20887 次
apache作代理服务器时,转发用户端口号到tomcat的方法有很多,这是其中之一。
需要用到mod_rewrite 和 mod_headers这两个模块。下面是步骤:
1.在apache配置文件中追加对上面两个module的引用,不同的系统方法略有区别。大致如下:
LoadModule rewrite_module /usr/lib64/apache2-prefork/mod_rewrite.so LoadModule headers_module /usr/lib64/apache2-prefork/mod_headers.so
2.然后在apache配置文件中追加如下rewrite配置
RewriteEngine on RewriteRule .* - [E=REMOTE_PORT:%{REMOTE_PORT},NE] RequestHeader set X-Forwarded-SourcePort %{REMOTE_PORT}e
3.如果在apache上使用了虚拟主机,则还需在每一个<VirtualHost>段里面加上这两行:
RewriteEngine On RewriteOptions Inherit
话说apache的rewrite模块真的很强大,这里有一打详细的说明。不过,工具虽好,还是要善用。
参考:
1. http://stackoverflow.com/questions/9811990/retrieving-the-client-source-port-on-a-httpd-tomcat-setting/14605972
2. http://httpd.apache.org/docs/2.2/zh-cn/rewrite/