tomcat与nginxd负载均衡

1.安装JDK

https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz

下载到/software文件夹中

# cd /software
# wget https://download.oracle.com/otn/java/jdk/8u231-b11/5b13a193868b4bf28bcb45c792fce896/jdk-8u231-linux-x64.tar.gz

# cd /software; tar xvf jdk-8u192-linux-x64.tar.gz; mkdir /usr/local/java; mv /software/jdk1.8.0_192 /usr/local/java/; echo "export PATH=\$PATH:/usr/local/java/jdk1.8.0_192/bin" >> /etc/profile; source /etc/profile;

# java -version
检查版本

java version "1.8.0_192"

注:在一台机器上如果有多个JDK版本

则环境变量字符串前面的JDK是使用版本。例如:

export PATH=$JAVA_HOME/bin:$TOMCAT_HOME/bin:$PATH

这句话表示使用JAVA_HOME下的java版本。若:

export PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/bin

这句话表示使用原有版本的java版本(若存在),因为谁在前用谁。

2.安装tomcat

# cd /software
# wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.29/bin/apache-tomcat-9.0.29.tar.gz
# tar xf apache-tomcat-9.0.29.tar.gz -C /usr/local/
# mv /usr/local/apache-tomcat-9.0.29/ /usr/local/tomcat

启动tomcat
# vim /usr/local/tomcat/bin/startup.sh 
停止tomcat
# vim /usr/local/tomcat/bin/shutdown.sh 
如果前面在环境变量中加入java不方便(例如别的项目需要另一个版本的java)。
则可以在这两个.sh文件的开始加入

export JAVA_HOME=/usr/local/jdk1.8.0_191/
export TOMCAT_HOME=/usr/local/tomcat
export PATH=$JAVA_HOME/bin:$TOMCAT_HOME/bin:$PATH

...
其他的原有代码

# ss -nltp
启动后占用8080端口,成功

3.访问tomcat网页服务

# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml 

注释两行
    <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
          allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

# vim /usr/local/tomcat/conf/tomcat-users.xml

该加的地方加上
    <role rolename="manager-gui"/>
    <user username="tomcat" password="123" roles="manager-gui"/>

# vim /usr/local/tomcat/conf/server.xml
不喜欢8080就修改
    <Connector port="80" protocol="HTTP/1.1" ...

重启
# /usr/local/tomcat/bin/shutdown.sh
# /usr/local/tomcat/bin/startup.sh

访问 IP:8080 成功。

4. tomcat目录结构

# cd /usr/local/tomcat/webapps/ROOT/
这个文件夹是项目文件放置位置。

特别的地方,如果
http://IP:8080/xxx/x.jsp
这种格式,那么xxx文件夹可以放在ROOT里,也可以放在ROOT平级。
都可以通过上面的地址访问。

如果ROOT和平级同时有同样的目录和同样的文件,则访问首先访问平级目录内容。

5.nginx+tomcat

安装nginx:https://blog.csdn.net/VegetandBird_s/article/details/102734071

修改nginx配置文件
# vim /usr/local/nginx/conf/nginx.conf

将下面一段加到http {}配置段里但是不要在server {}配置段里

upstream tomcat {
	server 10.1.1.12:8080 weight=1;
	server 10.1.1.13:8080 weight=1;
}
此处配置属于nginx部分
https://blog.csdn.net/VegetandBird_s/article/details/103049393

把server {}配置段里下面一段修改
    location / {
        }
修改成
	location ~ .*\.jsp$ {
	    proxy_pass   http://tomcat;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
	}

# systemctl restart nginx

6.tomcat利用memcache的session共享

安装memcache:https://blog.csdn.net/VegetandBird_s/article/details/103091765

下载MSM相关的jar包,并拷贝到所有tomcat节点的/usr/local/tomcat/lib/

MSM依赖包
spymemcached-2.12.3.jar
reflectasm-1.11.7.jar
objenesis-3.0.1.jar
msm-kryo-serializer-2.3.2.jar
minlog-1.3.0.jar
memcached-session-manager-tc9-2.3.2.jar --tc9为tomcat的版本号。不同版本号tomcat,对应的包不同。此处为tomcat9的jar包
memcached-session-manager-2.3.2.jar
kryo-serializers-0.42.jar
kryo-4.0.2.jar
asm-7.0.jar

我的git里有这一套。

拷贝到所有tomcat节点的/usr/local/tomcat/lib/目录下

官方组件:https://github.com/magro/memcached-session-manager/wiki/SetupAndConfiguration

或我的:https://codeload.github.com/13331033844/msm_jar/zip/master

在所有的tomcat服务器操作

# vim /usr/local/tomcat/conf/context.xml

加入
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
  memcachedNodes="n1:Memcachedd的IP:11211"
  lockingMode="auto"
  sticky="false"
  requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"  
  sessionBackupAsync= "false"  
  sessionBackupTimeout= "100"  
  copyCollectionsForSerialization="true"  
  transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />


# /usr/local/tomcat/bin/shutdown.sh 
# /usr/local/tomcat/bin/startup.sh 

测试样例
# vim /usr/local/tomcat/webapps/ROOT/session.jsp
SessionID:<%=session.getId()%> <BR>
SessionIP:<%=request.getServerName()%> <BR>
SessionPort:<%=request.getServerPort()%>
通过session.id判断是否正确。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值