apache反向代理tomcat

利用apache以反向代理方式把动态请求转发至后端tomcat集群,相关模块:mod_jk  mod_proxy

和nginx代理比较,tomcat与apache因为技术相通联系更紧密,相应转发和管理做得更好;

nginx转发时,以http转发,apache mod_proxy可以用ajp(apache jserv protocol)协议转发,ajp为二进制,效率更高;apache利用ajp连接后端tomcat集群,还可以禁用tomcat http的连接器,这样,只有apache可以访问到tomcat;

mod_proxy包含几个子模块:mod_proxy_http mod_proxy_ajp mod_proxy_balancer

<Server>

   <Service>

      <Connector/>

      <Engine>

        <Host>

          <Context></Context>

         </Host>

      </Engine>

    </Service>

</Server>

安装tomcat:

前置任务安装JDK

下载:

https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.15/bin/apache-tomcat-8.5.15.tar.gz

解压: tar xf apache-tomcat-8.5.15.tar.gz -C /usr/local

链接: ln -sv /usr/local/apache-tomcat-8.5.15 /usr/local/tomcat

vi /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin

 .  /etc/profile.d/tomcat.sh

/usr/local/conf/server.xml  默认的,应用程序部署描述符;

部署:将一个web应用程序所依赖到的类装载进JVM;

显示版本:catalina.sh version

启动:catalina.sh start

 apache 2.4 后支持event模式

./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mpms-shared=all --with-mpm=event --enable-proxy --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer  --enable-lbmethod-heartbeat --enable-heartbeat --enable-slotmem-shm  --enable-slotmem-plain --enable-watchdog

配置apache通过mod_proxy模块与Tomcat连接

要使用mod_proxy与Tomcat实例连接,需要apache已经装载mod_proxy、mod_proxy_http、mod_proxy_ajp和proxy_balancer_module(实现Tomcat集群时用到)等模块:

# /usr/local/apache/bin/httpd -D DUMP_MODULES | grep proxy
proxy_module (shared)
proxy_connect_module (shared)
proxy_ftp_module (shared)
proxy_http_module (shared)
proxy_fcgi_module (shared)
proxy_scgi_module (shared)
proxy_ajp_module (shared)
proxy_balancer_module (shared)
proxy_express_module (shared)

2、在httpd.conf的全局配置段或虚拟主机中添加如下内容:
ProxyVia Off
ProxyRequests Off
ProxyPreserveHost Off
<Proxy *>
Require all granted
</Proxy>
ProxyPass / ajp://172.16.100.1:8009/
ProxyPassReverse / ajp://172.16.100.1:8009/
<Location / >
Require all granted
</Location>

或让apache跟Tomcat的http连接器进行整合:
ProxyVia Off
ProxyRequests Off
ProxyPass / http://172.16.100.1:8080/
ProxyPassReverse / http://172.16.100.1:8080/
<Proxy *>
Require all granted
</Proxy>
<Location / >
Require all granted
</Location>

原文地址:https://www.cnblogs.com/feral/p/6851959.html