nginx + tomcat 搭建负载均衡、动静分离(tomcat多实例)

目录

一、配置nginx

1、安装ningx

2、在2台虚拟机上分别部署tomcat

三、配置tomcat1和2 动静分离配置

1、tomcat1配置

1、Tomcat1 server 配置

2、tomcat1 添加虚拟主机配置

2、Tomcat2  配置

1、Tomcat2 server 配置

2、tomcat2 添加虚拟主机配置

四、Nginx 配置负载均衡,反向代理 

1、设置静态页面

2、设置静态图片

3、配置负载均衡、反向代理


一个企业内部最基础的架构组成需要一个处理静态Web服务的页面,一个动态Web服务的页面和数据库
而我们实现了在Linux平台上,实现了Nginx + PHP 实现动静分离,而实际生产中往往一台nginx 需要“对应”多个动态处理的服务(及tomcat),所以如何将前端接收到的动态请求转交给后端多个tomcat处理,是我们此处研究的内容

一、配置nginx

1、安装ningx

systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

安装依赖环境包

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

创建运行用户、组

useradd -M -s /sbin/nologin nginx

上传nginx-1.15.9.tar.gz至/opt目录

cd /opt

tar xzvf nginx-1.15.9.tar.gz    解包

cd nginx-1.15.9/    准备编译

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make j3 && make install    安装

路径优化

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

chmod 754 /lib/systemd/system/nginx.service    给权限

systemctl enable nginx.service    开机启动

systemctl start nginx.service   启动nginx

nginx -t  检查nginx配置文件

二、在2台虚拟机上分别部署tomcat

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

上传所需要的安装包到  /opt

pache-tomcat-9.0.16.tar.gz    jdk-8u201-linux-x64.rpm

查看java版本     java -version

rpm -ivh jdk-8u201-linux-x64.rpm   解jdk包

设置JDK的环境变量

vim /etc/profile.d/java.sh                                   #/etc/profile.d/  环境变量脚本目录    
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64    #输出指定java所需的类文件
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar        #可执行文件的位置
export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile.d/java.sh  全局变量加载生效
java -version   再次查看版本会有所变化

cd /opt

tar zxvf apache-tomcat-9.0.16.tar.gz  解包
mv apache-tomcat-9.0.16 /usr/local/tomcat    #将解压后的包剪切到/usr/local 目录中,并改名为tomcat

ls /use/local/tomcat  查看

优化管理tomcat

ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/
ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/

启动、关闭tomcat

startup.sh   开启

ps -aux | grep 8080    检查开启

shutdown.sh  关闭

优化Tomcat

vim /usr/java/jdk1.8.0_201-amd64/jre/lib/security/java.security

securerandom.source=file:/dev/urandom    修改117行

备份tomcat配置文件 cp /usr/local/tomcat/conf/server.xml /usr/local/tomcat/conf/server.xml.bak

三、配置tomcat1和2 动静分离配置

1、tomcat1配置

1、Tomcat1 server 配置

mkdir /usr/local/tomcat/webapps/test

vim /usr/local/tomcat/webapps/test/index.jsp     #动态页面的配置
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title>
</head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
</html>

2、tomcat1 添加虚拟主机配置

vim /usr/local/tomcat/conf/server.xml
   <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
   <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" />        #新增

shutdown.sh 
startup.sh

2、Tomcat2  配置

1、Tomcat2 server 配置

2、tomcat2 添加虚拟主机配置

四、Nginx 配置负载均衡,反向代理 

1、设置静态页面

2、设置静态图片

3、配置负载均衡、反向代理

vim /usr/local/nginx/conf/nginx.conf
......
http {
......
 #gzip  on;  
    #配置负载均衡的服务器列表,weight参数表示权重,权重越高,被分配到的概率越大
    upstream tomcat {                ##名称中不要加"_"
      server 192.168.226.129:8080 weight=1;
      server 192.168.226.132:8080 weight=1;

    }

 server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        #配置Nginx处理动态页面请求,将 .jsp 文件请求转发到Tomcat 服务器处理

        location ~ .*\.jsp$ {
            proxy_pass http://tomcatserver;
   #这里不要加“_”  
            #设置后端的 Web 服务器可以获取远程客户端的真实IP         #设定后端的Web服务器接收到的请求访问的主机名(域名或IP、端口),默认host的值为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;
            }

location ~* \.(gif|jpg|swf|jpeg|bmp|ico)$ {     #识别图片
           root /usr/local/nginx/html/img;
           expires   1d;
           }     
  
        location / {
            root html;
            index  index.html index.htm;
        }

在配置了nginx中访问 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值