httpd(apache)实现端口映射
也可实现Apache配置多域名或者多端口映射(此文档不包含此部分内容)
1、对外只公布一个端口8090。
2、实现同一个8090端口,跳转到内网的8092和8091两个tomcat应用对应的端口。
3、外部访问http://外网IP:8090/cminfo 对应内部应用地址为(端口8092): http://127.0.0.1:8092/cminfo/
外部访问http://外网IP:8090/ 对应内部应用地址为(端口8091):http://127.0.0.1:8091/
注:此内部地址为:两个tomcat部署了两个应用,tomcat应用的端口不相同。
一、找到conf/httpd.conf配置文件,去掉以列四行代码前的#注释,让代码生效
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
二、在conf/httpd.conf配置文件最后面,增加以下代码(注意虚拟目录/cminfo,这句必须在/根目录的前面)
<VirtualHost *:8090>
ServerName localhost
ServerAlias localhost
ProxyPreserveHost On
ProxyRequests Off
#有虚拟目录的顺序必须在前面。
ProxyPass /cminfo http://127.0.0.1:8092/cminfo/
ProxyPassReverse /cminfo http://127.0.0.1:8092/cminfo/
#没虚拟目录的顺序在后面,否则,程序以为是本站点下的文件夹或者虚拟目录。
ProxyPass / http://127.0.0.1:8091/
ProxyPassReverse / http://127.0.0.1:8091/
</VirtualHost>
或者
<VirtualHost *:8090>
ServerName localhost #可配置域名如xizhi01.com
ServerAlias localhost #可配置域名如xizhi01.com
ProxyPreserveHost On
ProxyRequests Off
#有虚拟目录的顺序必须在前面。
ProxyPass /cminfo http://127.0.0.1:8092/cminfo/
ProxyPassReverse /cminfo http://127.0.0.1:8092/cminfo/
</VirtualHost>
<VirtualHost *:8090>
ServerName localhost #可配置域名如xizhi02.com
ServerAlias localhost #可配置域名如xizhi02.com
ProxyPreserveHost On
ProxyRequests Off
#没虚拟目录的顺序在后面,否则,程序以为是本站点下的文件夹或者虚拟目录。
ProxyPass / http://127.0.0.1:8091/
ProxyPassReverse / http://127.0.0.1:8091/
</VirtualHost>
三、浏览器中测试效果:
http://外网IP:8090/cminfo ——> 对应网站A
http://外网IP:8090/ ——> 对应网站B
一切OK,祝好运。