Nginx+Tomcat负载均衡、动静分离

网友投稿 237 2022-11-01

Nginx+Tomcat负载均衡、动静分离

一、部署Nginx 负载均衡器

1.1、关闭防火墙

systemctl stop firewalldsetenforce 0

1.2、yum安装nginx所需配置依赖包

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

1.3、创建运行用户、组

useradd -M -s /sbin/nologin nginx

1.4、配置软件模块

cd /opttar zxf nginx-1.20.2.tar.gz

cd nginx-1.12.0/./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-file-aio \ #启用文件修改支持--with-\ #启用状态统计--with-\ #启用 gzip静态压缩--with-\ #启用 flv模块,提供对 flv 视频的伪流支持--with- #启用 SSL模块,提供SSL加密功能--with-stream #启用 stream模块,提供4层调度

1.5、编译安装Nginx

make && make install

1.6、优化配置文件路径,便于系统识别Nginx的操作命令

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #让系统识别nginx的操作命令

1.7、添加Nginx系统服务

vim /lib/systemd/system/nginx.service[Unit]Description=nginxAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecrReload=/bin/kill -s HUP $MAINPIDExecrStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target

1.8、赋权,重启服务并设置开机自启

chmod 754 /lib/systemd/system/nginx.servicesystemctl start nginx.servicesystemctl enable nginx.service

1.9、验证服务

二、部署Tomcat服务

2.1、关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下

jdk-8u201-linux-x64.rpmapache-tomcat-9.0.16.tar.gzsystemctl stop firewalldsystemctl disable firewalldsetenforce 0

2.2、安装JDK

cd /optrpm -qpl jdk-8u201-linux-x64.rpm rpm -ivh jdk-8u201-linux-x64.rpm java -version

2.3、设置JDK环境变量

2.4、验证Java文件

cd /etc/profile.d/vim lcdb.javapublic class lcdb { public static void main(String[] args){ System.out.println("Hello !"); }}javac lcdb.javajava lcdb

2.5、安装启动Tomcat

cd /opttar zxvf apache-tomcat-9.0.16.tar.gzmv apache-tomcat-9.0.16 /usr/local/tomcat##启动tomcat ###后台启动/usr/local/tomcat/bin/startup.sh 或/usr/local/tomcat/bin/catalina.sh start #前台启动/usr/local/tomcat/bin/catalina.sh run netstat -natp | grep 8080

浏览器访问Tomcat的默认主页 Tomcat 应用服务器(和多实例配置)

3.1关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下

systemctl stop firewalldsystemctl disable firewalldsetenforce 0

3.2、安装JDK

cd /optrpm -qpl jdk-8u201-linux-x64.rpm rpm -ivh jdk-8u201-linux-x64.rpm java -version

3.3、设置JDK环境变量

vim /etc/profile.d/java.shexport JAVA_HOME=/usr/java/jdk1.8.0_201-amd64export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATHsource /etc/profile.d/java.shjava -version

3.4、安装 Tomcat

cd /opttar zxvf apache-tomcat-9.0.16.tar.gzmkdir /usr/local/tomcatmv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1cp -a /usr/local/tomcat/tomcat1 /usr/local/tomcat/tomcat2 #递归复制,连属性一起

3.5、配置 tomcat 环境变量

vim /etc/profile.d/tomcat.sh#tomcat1export CATALINA_HOME1=/usr/local/tomcat/tomcat1export CATALINA_BASE1=/usr/local/tomcat/tomcat1export TOMCAT_HOME1=/usr/local/tomcat/tomcat1 #tomcat2export CATALINA_HOME2=/usr/local/tomcat/tomcat2export CATALINA_BASE2=/usr/local/tomcat/tomcat2export TOMCAT_HOME2=/usr/local/tomcat/tomcat2 source /etc/profile.d/tomcat.sh

3.6、修改 tomcat2 中的 server.xml 文件,要求各 tomcat 实例配置不能有重复的端口号

cp /usr/local/tomcat/tomcat2/conf/server.xml /usr/local/tomcat/tomcat2/conf/server.xml.bak #备份vim /usr/local/tomcat/tomcat2/conf/server.xml #22行,修改Server prot,默认为8005 -> 修改为8006 修改为8081 #116行,修改Connector port AJP/1.3,默认为8009 -> 修改为8010

3.7、修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量

vim /usr/local/tomcat/tomcat1/bin/startup.sh# -----------------------------------------------------------------------------# Start Script for the CATALINA Server# -----------------------------------------------------------------------------##添加以下内容export CATALINA_BASE=$CATALINA_BASE1export CATALINA_HOME=$CATALINA_HOME1export TOMCAT_HOME=$TOMCAT_HOME1 vim /usr/local/tomcat/tomcat1/bin/shutdown.sh# -----------------------------------------------------------------------------# Stop script for the CATALINA Server# -----------------------------------------------------------------------------export CATALINA_BASE=$CATALINA_BASE1export CATALINA_HOME=$CATALINA_HOME1export TOMCAT_HOME=$TOMCAT_HOME1 vim /usr/local/tomcat/tomcat2/bin/startup.sh# -----------------------------------------------------------------------------# Start Script for the CATALINA Server# -----------------------------------------------------------------------------export CATALINA_BASE=$CATALINA_BASE2export CATALINA_HOME=$CATALINA_HOME2export TOMCAT_HOME=$TOMCAT_HOME2 vim /usr/local/tomcat/tomcat2/bin/shutdown.sh# -----------------------------------------------------------------------------# Stop script for the CATALINA Server# -----------------------------------------------------------------------------export CATALINA_BASE=$CATALINA_BASE2export CATALINA_HOME=$CATALINA_HOME2export TOMCAT_HOME=$TOMCAT_HOME2

3.8、启动各 tomcat 中的 /bin/startup.sh

/usr/local/tomcat/tomcat1/bin/startup.sh/usr/local/tomcat/tomcat2/bin/startup.sh netstat -natp | grep java

3.9、浏览器访问测试

server 配置

mkdir /usr/local/tomcat/tomcat1/webapps/yrvim /usr/local/tomcat/tomcat1/webapps/yr/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>JSP yr page #指定为 test1 页面<% out.println("动态页面 1,/usr/local/tomcat/conf/server.xml#由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置 /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh

4.2、Tomcat2 server 配置

mkdir /usr/local/tomcat/tomcat1/webapps/test /usr/local/tomcat/tomcat2/webapps/testvim /usr/local/tomcat/tomcat1/webapps/test/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>JSP test2 page #指定为 test2 页面<% out.println("动态页面 2,/usr/local/tomcat/tomcat1/conf/server.xml#删除前面的 HOST 配置 /usr/local/tomcat/tomcat1/bin/shutdown.sh /usr/local/tomcat/tomcat1/bin/startup.sh

4.3、 Tomcat server 配置

mkdir /usr/local/tomcat/webapps/testvim /usr/local/tomcat/webapps/test/index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>JSP test1 page #指定为 test1 页面<% out.println("动态页面 1,/usr/local/tomcat/conf/server.xml#由于主机名 name 配置都为 localhost,需要删除前面的 HOST 配置 /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh

4.4、Nginx server 配置

#准备静态页面和静态图片echo '

这是静态页面

' > /usr/local/nginx/html/index.htmlmkdir /usr/local/nginx/html/imgcp /root/th.gif /usr/local/nginx/html/img

vim /usr/local/nginx/conf/nginx.conf......{...... #gzip on; #配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大 upstream tomcat_server { server 192.168.131.19:8080 weight=1; server 192.168.131.22:8080 weight=1; server 192.168.131.22:8081 weight=1; } server { listen 80; server_name zx.com; charset utf-8; #access_log logs/host.access.log main; #配置Nginx处理动态页面请求,将 .jsp文件请求转发到Tomcat 服务器处理 location ~ .*\.jsp$ { proxy_pass proxy_set_header HOST $host;##把$remote_addr赋值给X-Real-IP,来获取源IP proxy_set_header X-Real-IP $remote_addr;##在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } #配置Nginx处理静态图片请求 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ { root /usr/local/nginx/html/img; expires 10d; } location / { root html; index index.html index.htm; }...... }......}

4.5、测试效果

测试静态页面效果浏览器访问 http://192.168.131.18/index.jsp

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:首评 | 阿里云顺利完成国内首个云原生安全成熟度评估
下一篇:基于高速数据通信接口的信号完整性的解决方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~