apache + tomcat 集群配置 proxy方式

假设两个tomcat分别安装在192.168.0.203和192.168.0.204,apache安装在192.168.0.205.
假设网站访问域名为www.test.com
假设apache的document路径为/opt/web
1. jre预装的是1.6.0_30-b12
2. apache预装的是2.2
3. tomcat安装6.0.35
tomcat路径/opt/
4. 在Apache安装目录下找到conf/httpd.conf文件,以文本编辑器打开。
apache目录路径/etc
1) 确保以下内容已添加,以便Apache在启动时自动加载代理(proxy)模块。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.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
2) NameVirtualHost *:80 这句注释去掉,修改为NameVirtualHost 192.168.0.205:80
3) 在文档最下面加上如下内容:
<VirtualHost 192.168.0.203:80>
ServerName www.test.com
ServerAlias *.test.com
DocumentRoot /opt/web
DirectoryIndex index.html
ProxyRequests Off
<proxy balancer://cluster_test>
BalancerMember ajp://192.168.0.203:8009 loadfactor=1 route=node_test_203
BalancerMember ajp://192.168.0.204:8009 loadfactor=1 route=node_test_204
</proxy>
ProxyPassMatch ^(/.*\.jsp)$ balancer://cluster_test/ stickysession=JSESSIONID|jsessionid
ProxyPassMatch ^(/.*\.action)$ balancer://cluster_test/ stickysession=JSESSIONID|jsessionid
ProxyPass / !
ProxyPassReverse / balancer://cluster_test/
ErrorLog "logs/test-error.log"
CustomLog "logs/test-access.log" common
<Directory "/opt/web">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
5.打开tomcat安装目录下conf/server.xml文件。
1) 修改关闭端口,如果一台服务器上启动多个tomcat实例,必须关闭端口是不一样的,<Server port="8005" shutdown="SHUTDOWN">。
2) 修改tomcat的监听端口,如果一台服务器启动多个tomcat实例,必须修改。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
3) 修改ajp端口,这里端口设置必须和前面第一步第三小步骤中配置的端口一致。
例如上面BalancerMember ajp://192.168.0.203:8009 loadfactor=1 route=node_test_203这句,ajp端口是8009
找到如下内容:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
4) 修改引擎路径
找到如下内容:
<Engine name="Catalina" defaultHost="localhost">
192.168.0.203的服务器上修改为:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="node_test_203">
192.168.0.204上修改为:
<Engine name="Catalina" defaultHost="localhost" jvmRoute="node_test_204">
jvmRoute的值和前面第一步第三步骤中route值对应。

碰到问题:
(13)Permission denied: proxy: AJP: attempt to connect to 192.168.0.250:9002 (192.168.0.250) failed
原因:SELinux on RHEL/CentOS by default ships so that httpd processes cannot initiate outbound connections
解决:/usr/sbin/setsebool -P httpd_can_network_connect 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现nginx和tomcat一起部署springboot项目并实现tomcat集群,需要进行以下步骤: 1. 部署springboot项目到tomcat上,并启动多个tomcat实例,这些实例需要在不同的端口上运行。 2. 配置nginx作为反向代理服务器,将所有请求转发到tomcat集群中的一个实例上。可以使用upstream模块来配置tomcat集群,如下所示: ```nginx http { upstream tomcat_cluster { server tomcat1_ip:tomcat1_port; server tomcat2_ip:tomcat2_port; server tomcat3_ip:tomcat3_port; } server { listen 80; server_name example.com; location / { proxy_pass http://tomcat_cluster; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } } ``` 在上面的配置中,tomcat_cluster是一个upstream实例,包含了所有tomcat实例的IP地址和端口号。nginx会将请求转发到tomcat_cluster中的一个实例上。 3. 配置session共享,以便在tomcat集群中的不同实例之间共享用户会话信息。可以使用memcached或redis等分布式缓存来实现session共享。 4. 配置负载均衡器,以便nginx可以根据不同的负载均衡算法来分配请求到不同的tomcat实例上。可以使用nginx自带的负载均衡模块或第三方模块,如nginx-upsync-module等。 5. 测试集群的可伸缩性和容错性,以确保tomcat集群可以在高负载和节点故障的情况下正常运行。 总结来说,要实现nginx和tomcat一起部署springboot项目并实现tomcat集群,需要进行反向代理、session共享、负载均衡器等多方面的配置和测试。这样可以保证项目的高可用性和可伸缩性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值