Windows环境下,Nginx+tomcat+redis实现web项目集群

,准备工具和软件:

1nginx

 nginx是一个高性能的 HTTP 和 反向代理 服务器, 最大的特点是对高并发的支持和高效的负载均衡,这里用到的版本是nginx-1.7.4

请根据实际需要选择下载相应的版本。

2tomcat

它是一款免费的Web应用服务器,这里用到的版本是tomcat7.0

 

3redis 

Redis 是一个高性能的key-value数据库对关系数据库起到很好的补充作用,它将数据存储在内存中,保证了读取效率,同时它还支持主从同步。

 

4,下载地址

Nginx,tomcat,redis下载地址:1, http://redis.io/download

                            2, http://tomcat.apache.org

                            3, http://nginx.org/en/download.html

*注意:这里下载的都是免安装版,即解压后可以直接使用的。

 

 

二,需要用到的jar

commons-pool-1.5.4,tomcat-redis-session-manager-1.2,jedis-2.1.0

请将下好的这三个包拷贝到tomcatlib目录下,由于配置集群要用到多个tomcat,所以每个tomcatlib目录下都要有这些包。

 

三,配置步骤

 

1,解压下载文件

解压nginx-1.674.zipE:\nginx-1.7.4\ nginx-1.7.4目录下


解压apache-tomcat-7.0.6到 E:\apache-tomcat-7.0.6目录下


以上目录是我解压的目录,具体放到哪个目录,根据实际情况修改。

2,配置tomcat

1,由于是搭建集群环境,所以要用到多个tomcat,这里我将解压好的tomcat拷贝一份,重命名为apache-tomcat-7.0.7:(如果用到三个或三个以上tomcat,依次同理)

 

2,打开apache-tomcat-7.0.7conf


3,为了不与原先tomcat的端口重复,修改server.xml文件

 

修改原本的8005端口,这里我改为8015,请根据自己需要自行修改为没被占用的端口


修改原本的8080端口改为8081,请根据自己需要自行修改为没被占用的端口

 

修改原本的8009端口改为8019,请根据自己需要自行修改为没被占用的端口


3,配置redissession共享,同时修改E:\apache-tomcat-7.0.6\conf\context.xmlE:\apache-tomcat-7.0.7\conf\context.xml文件,在context节点中增加红圈中的部分。

 

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />

<Manager className="com.radiadesign.catalina.session.RedisSessionManager"

                   host="192.168.23.14" 

                   port="6379"

                   password="ylwl"

                   database="3" 

                   maxInactiveInterval="60" />

配置中各个字段含义:

host:redis服务器ip地址

port:redis端口

password:redis数据库安全密码,若没设置密码,该字段可以去掉(网上大部分配置教程都不加该字段,但我在本地测试是会报连接被拒绝,经验证加入该字段后则可以连接)

database:数据库名,默认为0,请根据实际需要修改

maxInactiveInterval:session最大不活动时间,单位秒

 

3,配置nginx

 找到 E:\nginx-1.7.4\ nginx-1.7.4\conf\nginx.conf 配置文件

1,在 #gzip  on; 这一行后面增加以下配置:


upstream yycpsfora {

          server localhost:8080;

          server localhost:8081;

  }

*注意:这里的server指的是你配置的tomcat服务器的ip地址和端口,localhost表示我在本地配置了两个tomcat,它们的端口分别是80808081,你可以根据实际需要添加更多的tomcat配置

2,修改server 的端口和服务名如下:

 

3,在location /大括号中增加如下配置:

 

location / {

            root   html;

            index  index.html index.htm index.jsp;

            add_header Cache-Control 'no-store';

         client_max_body_size 100m;

         proxy_set_header Host $http_host;

         proxy_set_header X-Real-IP $remote_addr;

         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # proxy_cache Z;

         proxy_cache_valid 200 1m;

         proxy_pass   http://yycpsfora;

        }

*特别注意:proxy_pass的值http://yycpsfora中的yycpsfora要与步骤1中的yycpsfora一样

 

四,集群测试

1, 分别启动两个tomcat实例,然后启动nginx,然后在浏览器中输入:http://localhost:800 将会出现以下结果,说明配置成功了:

 

2,访问http://localhost:800/yycpsfora/,开始测试

 

五,备注(开发人员注意)

 

若要配置session共享,需要对项目中的实体类进行序列化,如此才能在网络中传输,即实体类需要implements java.io.Serializable,否则在访问项目时会报错

以上yycpsfora为项目名
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现nginxtomcat一起部署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集群可以在高负载和节点故障的情况下正常运行。 总结来说,要实现nginxtomcat一起部署springboot项目并实现tomcat集群,需要进行反向代理、session共享、负载均衡器等多方面的配置和测试。这样可以保证项目的高可用性和可伸缩性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值