httpd反向代理Tomcat

2017-09-03  本文已影响0人  姜饼人_9e7b

在上一篇笔记http://www.jianshu.com/p/08fa0913121d中,配置了两个tomcat的虚拟主机
默认的localhost主机以及www.test.com,如下:

image.png

在这里我用httpd反向代理Tomcat。
httpd和tomcat的通信,可以用http协议,也可以用ajp接口。

一、使用http协议进行反向代理

1、配置httpd虚拟主机

image.png
[root@CentOS7A ~]#vim /etc/httpd/conf.d/vhost.conf

<VirtualHost *:80>
        ServerName www.httpd.com                          #httpd主机名
        ProxyRequests Off                                 #不开启正向代理
        ProxyVia On                                       #给客户端的报文头发送代理信息
        ProxyPreserveHost On                              #是否把客户端请求的主机名发送到后端tomcat。 
        <Proxy *>
                Require all granted
        </Proxy>
        ProxyPass / http://127.0.0.1:8080/                #代理到本机的8080端口
        ProxyPassReverse / http://127.0.0.1:8080/
        <Location />
                Require all granted
        </Location>
</VirtualHost>

测试:
www.httpd.com的配置hosts,实现域名解析。
可以看到,由于我的tomcat没有www.httpd.com这个主机,默认访问localhost这个主机。

image.png

2、用http反向代理到tomcat的www.test.com主机
tomcat配置了www.test.com主机,我这里用httpd反向代理到该主机。

image.png

www.test.com的配置hosts,实现域名解析。可以看到,代理到tomcat的www.test.com主机上了。
这里关键的是要开启:ProxyPreserveHost On 。否则无法把主机名传到tomcat。

image.png

二、使用httpd的ajp接口进行反向代理

tomcat的ajp监听在8009端口,我们只需要把http改成ajp,把8080改成8009端口即可。

访问结果一样:

image.png
上一篇 下一篇

猜你喜欢

热点阅读