为什么要使用apache代理呢?
看一下现在的URL:
project1 的访问地址是 http://192.168.0.163:10000/project1
project2 的访问地址是 http://192.168.0.163:20000/project2
两个端口不同,不太好记。。。
所以可以通过apache的proxy功能,转发web请求到后面的tomcat.
修改apache的配置文件 conf/httpd.conf
先加载二个模块:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
再加入以下的配置:
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /project1 http://192.168.0.163:10000/project1
ProxyPassReverse /project1 http://192.168.0.163:10000/project1
ProxyPass /project2 http://192.168.0.163:20000/project2
ProxyPassReverse /project2 http://192.168.0.163:20000/project2
重启apache.
以后project1 的访问地址就变成了 http://192.168.0.163/project1
project2 的地址变成了 http://192.168.0.163/project2
ps:另外proxy也可以转发请求到不同IP的tomcat应用程序,并且可以结合虚拟主机配置,对端口或域名分别转发web请求
<VirtualHost 192.168.0.164:80>
ServerName 192.168.0.164
DocumentRoot /srv/www/
ErrorLog logs/error_log
CustomLog logs/access_log common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /srv/www/
ErrorLog logs/com-error_log
CustomLog logs/com-access_log common
</VirtualHost>
<VirtualHost 192.168.0.164:8000>
DocumentRoot /srv/test/
ServerName test
ErrorLog logs/ut-error_log
CustomLog logs/ut-access_log common
</VirtualHost>
<VirtualHost 192.168.0.164:8001>
ServerName artifactory
ErrorLog logs/artifactory-error_log
CustomLog logs/artifactory-access_log common
ProxyPreserveHost on
ProxyPass / http://192.168.0.166:81/
ProxyPassReverse / http://192.168.0.166:81/
</VirtualHost>