httpd.conf需要配置的3个地方:
1、Listen 处需要增加监听的端口
Listen 80
Listen 8090
2、mod_proxy提供代理服务器功能,mod_proxy_balancer提供负载均衡功能, mod_proxy_http让代理服务器能支持HTTP协议。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so
3、在</IfModule>下方增加以下内容
<VirtualHost *:8090>
ServerName 172.24.2.61
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /projectName http://172.24.2.22:8091/projectName
ProxyPassReverse /projectName http://172.24.2.22:8091/projectName
ErrorLog logs/8090_log
CustomLog logs/8090_log common
</VirtualHost>
4、重启apache
(一).ProxyPass 指令
说明: 将一个远端服务器映射到本地服务器的URL空间中
语法: ProxyPass [路径] !|url
上下文: 服务器配置, 虚拟主机
状态: Extension
模块: mod_proxy
指令对于您不想对某个子目录进行反向代理时很有用。比如说:
ProxyPass /mirror/foo/i !
ProxyPass /mirror/foo
http://foo.com
将会代理除对/mirror/foo/i请求之外的所有对 foo.com 的/mirror/foo请求。
注意:顺序很重要,您需要把特例情况放在一般代理通过指令
当在配置段中使用时,第一个参数会被忽略而是采用由指令指定的本地目录。
如果您需要一个更加灵活的反向代理配置,请参见使用[P]标记的RewriteRule指令。
(二).ProxyPassReverse 指令
说明: 调整由反向代理服务器发送的HTTP回应头中的URL
语法: ProxyPassReverse [路径] url
上下文: 服务器配置, 虚拟主机
状态: Extension
模块: mod_proxy
此指令使 Apache 调整HTTP重定向回应中Location, Content-Location和URI头里的URL。 HTTP redirect responses. This is essential when Apache is used as a reverse proxy to avoid by-passing the reverse proxy because of HTTP redirects on the backend servers which stay behind the reverse proxy.
路径是本地虚拟路径的名称。
url远端服务器的部分URL。与ProxyPass指令中的使用方法相同。
NameVirtualHost使用要点
首先,某个ip:port 上只设置一个虚拟主机时,NameVirtualHost ip:port 可以不写,因为从这个ip:port的访问不需要做任何选择,例如:192.168.1.123只对应于www.a.com,所以不用指定 NameVirtualHost。
其次,某个ip:port 上设置多个虚拟主机时,则须使用指令NameVirtualHost ip:port ,否则从该ip:port的访问只访问第一个该ip:port 的虚拟主机(因为它优先,apache启动时会提示的)
如:
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName c.sh-holiday.com
ProxyPreserveHost On
ProxyRequests Off
ProxyPass le http://localhost:8081/sale
ProxyPassReverse le http://localhost:8081/sale
ErrorLog logs/c.sh-holiday.com_8080_log
CustomLog logs/c.sh-holiday.com_8080_log common
</VirtualHost>
<VirtualHost *:8080>
ServerName j.sh-holiday.com
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://localhost:8070/
ProxyPassReverse / http://localhost:8070/
ErrorLog logs/j.sh-holiday.com_8080_log
CustomLog logs/j.sh-holiday.com_8080_log common
</VirtualHost>