日期:2014-05-16  浏览次数:20952 次

apache作代理服务器时,转发用户端口号到tomcat

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/