nginx+tomcat在一台服务器上实现负载均衡

本文介绍了如何在一台服务器上通过nginx实现tomcat的负载均衡,并详细阐述了配置过程,包括nginx.conf的修改和tomcat的session持久化设置。此外,还涉及了redis的安装和配置,以解决session共享问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要这么做

      源于最近一个新项目上线运行,项目初期的磨合阶段,问题肯定源源不断,版本迭代也就比较频繁,但是为了不影响用户使用,只能选择大半夜更新(大家都睡了,唯有你挑灯夜战),为了保证睡眠,自然就得想解决方案了。

准备阶段

       服务器系统:ubuntu14.04

       tomcat版本:tomcat7

       nginx

       1)由于项目是基于tomcat运行的,那么首先我们需要在服务器上安装两个tomcat,官网下载tar.gz包,拷贝到服务器的两个文件夹下解压即可(这个文件夹的位置,名称可按照自己的习惯随意创建)。

       2)解压之后,其中一个tomcat保持不动,另一个需要修改conf文件夹下server.xml文件中四个端口。

          8005:负责监听关闭tomcat的请求

          8080:服务器连接器的端口号,该连接器将在指定端口侦听来自客户端的请求

          8009:负责和其他HTTP服务器建立连接,把Tomcat和其他http服务器集成时需要用到此连接器

          8443:服务器扎鞥在处理http请求时收到一个SSL传输请求后重定向的端口号

           本人的习惯都是在原来的基础上加1

       3)安装nginx,直接apt -get即可安装

配置阶段

       1)nginx配置

               修改etc/nginx目录下的nginx.conf文件,在http{}中增加如下内容:

                upstream tomcat {

                       #ip_hash

                        server  localhost:8080 weight=1;

                        server  localhost:8081 weight=1;

                }

                server {

                         listen 89;

                         server_name localhost 127.0.0.1;                        

                         location / {

                                   location ~*/项目名/  {

                                            proxy_next_upstream  http_502 http_504 error timeout invalid_header;

                                            proxy_set_header Host $host:89;

                                            proxy_set_header X-Forwarded-For  $remote_addr;

                                             proxy_pass http://tomcat;

                                   }

                          }

                }

        以上配置有两点需要注意的

        A.反向代理的地址与upstream命名的需保持一致;

        B.当你不想使用nginx默认的80端口时,$host后面必须显式的加上端口号,否则你会发现你的项目跑不起来。

                

       有很多人建议自己新增加一个conf文件,不要再原来的文件中修改,这也是个很好的提议,避免改动比较乱造成不必要的麻烦。

       好了,至此负载均衡已经实现,但是这并不能解决问题,我们的session呢,停了一个服务,session就没了,这时候我们就要来实现session的持久化了。

         2) tomcat的session赋值

          修改tomcat安装路径conf文件夹下的server.xml文件

           在<Engine name= "Catalina" defaultHost="localhost">下方增加如下内容:

          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"  channelSendOptions="8">
                <Manager className="org.apache.catalina.ha

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值