linux配置Nginx+Tomcat集群+redis实现会话共享

在之前的文章里面已经讲过用VMware workstation创建虚拟机,有兴趣的小伙伴可以前往看一下:

https://mp.csdn.net/mp_blog/creation/editor/new/128980278

一、更改linux配置

安装wget命令,我们可以直接用wget命令来下载需要的资源:

yum install -y wget

根据以下链接,配置centOS镜像,加快linux下载速度:

https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.44f31b11Xr8j6w

二、下载JDK并配置环境变量

  1. 下载JDK

# 进入根目录
cd /
# 根目录下创建文件夹soft用于存放我们的软件
mkdir soft
#查看当前目录
ll
#进入soft文件夹
cd soft
# 下载JDK wget 下载地址 -O 下载下来后的名称
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz

2、解压

# 解压压缩包
tar -zxvf jdk-8u202-linux-x64.tar.gz

3、配置环境变量

#全新的linux系统没有vim命令执行 yum install -y vim 安装vim命令
yum install -y vim
#以下两个步骤都在jdk目录下进行的
# 配置环境变量
1. vim /etc/profile
# 在最后加入下面三句作为环境变量的参数:
export JAVA_HOME=/soft/jdk1.8.0_202
export JRE_HOME=/soft/jdk1.8.0_202/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
# 命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录
2. source /etc/profile
# 查看版本
3. java -version

三、安装Apache Tomcat

  1. 下载 apache-tomcat-8.5.82.tar.gz压缩包(http://tomcat.apache.org/)

wget https://repo.huaweicloud.com/apache/tomcat/tomcat-8/v8.5.82/bin/apache-tomcat-8.5.82.tar.gz

2、将压缩包解压到soft文件夹

# 进入soft文件夹
cd soft/  
# 解压压缩包
tar -zxvf apache-tomcat-8.5.82.tar.gz   

3、修改apache-tomcat-8.5.82名字为tomcat8

mv apache-tomcat-8.5.82/ tomcat8

4、进入tomcat下bin目录 启动Tomcat

cd tomcat/bin
./catalina.sh run

5、浏览器访问并解决防火墙问题

在浏览器使用ip进行访问(端口默认:8080),http://10.70.20.127:8080,可以看到tomcat的管理界面。

10.70.20.127为服务器的ip地址,如果访问不了,有可能是服务器防火墙问题,8080端口被拦截了,于是需要打开8080端口,并保存重启防火墙

iptables  -I  INPUT  -p  tcp  --dport  8080  -j  ACCEPT
/etc/init.d/iptables  save
/etc/init.d/iptables  restart

6、配置 tomcat Web管理界面帐号密码权限

修改tomcat下的配置文件

vim /soft/tomcat8/conf/tomcat-users.xml

在tomcat-users结束标签之前添加以下代码:

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

:wq! 保存退出,重启tomcat

:wq!
cd /soft/tomcat8/bin
./shutdown.sh
./catalina.sh run

四、部署web项目

1、第一种方式 : 直接部署项目到webapps

进入tomcat下的webapps目录,

cd /soft/tomcat8/webapps

把web项目打包出来的war拷贝到webapps目录下

rz 选择上传war压缩包

重启服务,tomcat会自动将war包解压

浏览器访问:http://10.70.20.127:8080/ajax 即可访问到ajax目录下的 index.html/.jsp

2、通过Apache Tomcat管理页面直接部署

关闭防火墙并启动Tomcat

systemctl stop firewalld
cd /soft/apache-tomcat-8.5.82/bin
./catalina.sh run

点击manager App,登录管理页面

选择上传的war文件,然后点击部署

重新启动tomcat

五、配置Nginx并部署多台tomcat

1、安装依赖

1. yum install gcc-c++
2. yum install pcre pcre-devel
3. yum install zlib zlib-delvel
4. yum install openssl openssl-devel

2、下载解压Nginx安装包

# 下载安装包 我下载的是1.20.1版本
wget http://nginx.org/download/nginx-1.20.1.tar.gz
# 解压安装包
tar -xvf nginx-1.20.1.tar.gz

3、安装Nginx

# 移动到下载安装包的位置
cd nginx-1.20.1/
# 执行   执行当前文件夹中的配置configure文件 默认安装在user/local/nginx(如果不确定可以使用 whereis nginx)
./configure
# 执行make
make
# 执行make install
make install

4、启动Nginx

# 移动到/usr/local/nginx/sbin/
cd /usr/local/nginx/sbin/
# 执行 ./nginx 启动nginx(注意关闭防火墙)
./nginx
# 也可以使用这条命令执行启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#重启命令
./nginx -s reload 
#测试命令
./nginx -t 

5、修改nginx.conf文件


worker_processes  1;

events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    upstream coolxiaoqi{
    	#ip_hash 绑定ip,实现session共享(可能会导致某个tomcat负载过多)
    	#ip_hash
		server 47.108.222.111:8082;
		server 47.108.222.111:8083;
    }
	
    server {
        listen       80;
        server_name  localhost;
        location / {
        	root html;
            # 设置主页为index.html
	    	index index.html index.htm;
        	# 代理 指向upstream coolxiaoqi
            proxy_pass http://coolxiaoqi;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

6、session共享配置

6.1、方法一:tomcat自身设置(在我的电脑上,多机情况下session无法保存,暂不推荐)
#在tomcat1和tomcat2中进行配置,下面的配置在两个tomcat服务器的server.xml文件中都要进行修改:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
                 channelSendOptions="8">

          <Manager className="org.apache.catalina.ha.session.DeltaManager"
                   expireSessionsOnShutdown="false"
                   notifyListenersOnReplication="true"/>

          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                      address="10.70.20.127"
                      port="4000"
                      autoBind="100"
                      selectorTimeout="5000"
                      maxThreads="6"/>

            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
              <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/>
          </Channel>

          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
                 filter=""/>
          <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
                    tempDir="/tmp/war-temp/"
                    deployDir="/tmp/war-deploy/"
                    watchDir="/tmp/war-listen/"
                    watchEnabled="false"/>

          <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        </Cluster>
        
#在每个tomcat需要共享session的项目的web.xml中添加标签
<distributable/>
6.2、方法二:redis实现session共享
# 1、下载redis(我的redis是安装在了Nginx的虚拟机上)
wget https://repo.huaweicloud.com/redis/redis-6.2.4.tar.gz

# 2、将redis-6.2.4.tar.gz上传至192.168.14.132的/usr/local/路径下
cd /usr/local/
tar -zvxf redis-6.2.4.tar.gz
cd redis-6.2.4/
make
make PREFIX=/usr/local/redis-6.2.4 install

# 3、启动redis
./bin/redis-server& ./redis.conf

# 4.配置
vi /usr/local/redis-6.2.4/redis.conf

# 更改内容 可以在conf文件下使用  /+要查找内容快速查找;
# 也可以在非输入模式insert下输入:set nu 显示行号,然后在下面几行进行操作
259 daemonize no 改成: daemonize yes	
75 注释掉bind 127.0.0.1 
94 protected-mode yes 改成: protected-mode no
903 取消# requirepass foobared 的注释,并改成requirepass 密码

# 5.设置redis开机启动
/usr/local/redis-6.2.4/bin/redis-cli shutdown  #先停止之前启动的redis
vim /etc/systemd/system/redis.service

[Unit]
Description=redis-server
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/redis-6.2.4/bin/redis-server /usr/local/redis-6.2.4/redis.conf
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target


systemctl enable redis.service #设置为开机启动
 
systemctl stop redis.service     #停止redis
 
systemctl start redis.service    #启动redis
 
systemctl status redis.service   #查看redis运行状态


# 在tomcat的安装目录的lib下上传三个jar包:
commons-pool2-2.2.jar
jedis-2.5.2.jar
tomcat-redis-session-manager.jar

jar下载地址:
https://pan.baidu.com/s/11YW5lLn6RXO-iYCWqrpbxQ?from=init#list/path=%2Fjar
提取码:ga6n

# 对每一个需要集群的tomcat进行设置
# 进入tomcat的conf文件夹,修改context.xml文件
cd /soft/tomcat-8.5.82/conf
vi context.xml

在Context节点增加:

<Valve className="com.seejoke.tomcat.redissessions.RedisSessionHandlerValve"/> 
<Manager className="com.seejoke.tomcat.redissessions.RedisSessionManager" 
    host="10.70.20.128"  <!---虚拟机的IP地址-->
    port="6379"
    database="0"
    password="root"
    maxInactiveInterval="60"
    />

完成!!!

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值