0
点赞
收藏
分享

微信扫一扫

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

辰鑫chenxin 2024-09-12 阅读 29
tomcatnginx

目录

一、Nginx概述

1.Nginx应用

二、正向代理和反向代理

1.正向代理

1.1主要作用 

1.2工作原理 

2.反向代理 

2.1主要作用 

2.2工作原理

三、负载均衡模式

1.轮询

2.最少连接数

3.IP 哈希

4.加权轮询

5.最少时间算法

6.一致性哈希

四、规划部署负载均衡和反向代理

1.部署Nginx负载均衡器

1.1安装所需的依赖包

1.2创建Nginx用户

1.3下载并解压Nginx源码

1.4创建软链接

1.5创建Nginx服务文件

1.6设置权限并启动Nginx

2.部署2台Tomcat应用服务器

2.1安装JDK 

2.2配置环境变量

2.3安装并启动Tomcat

3.动静分离配置

3.1Tomcat1服务器配置

3.2Tomcat2服务器配置

4.Nginx服务器配置 

1.准备静态页面和静态图片

2.修改Nginx配置文件

3.测试 


一、Nginx概述

1.Nginx应用

二、正向代理和反向代理

1.正向代理

1.1主要作用 

1.2工作原理 

2.反向代理 

2.1主要作用 

2.2工作原理

三、负载均衡模式

1.轮询

配置示例

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

2.最少连接数

配置示例

upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

3.IP 哈希

配置示例

upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

4.加权轮询

配置示例

upstream backend {
    server backend1.example.com weight=3;
    server backend2.example.com weight=1;
    server backend3.example.com weight=2;
}

5.最少时间算法

配置示例

upstream backend {
    least_time header;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

6.一致性哈希

配置示例

upstream backend {
    hash $request_uri consistent;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

四、规划部署负载均衡和反向代理

1.部署Nginx负载均衡器

关闭防火墙和临时防护

systemctl stop firewalld
setenforce 0

1.1安装所需的依赖包

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

1.2创建Nginx用户

useradd -M -s /sbin/nologin nginx

tail -2 /etc/passwd

1.3下载并解压Nginx源码

解压
cd /opt
tar zxvf nginx-1.20.2.tar.gz -C /opt/

编译安装
cd nginx-1.20.2/
 
./configure --prefix=/usr/local/nginx \
            --user=nginx \
            --group=nginx \
            --with-file-aio \
            --with-http_stub_status_module \
            --with-http_gzip_static_module \
            --with-http_flv_module \
            --with-http_ssl_module \
            --with-stream
 
make && make install

1.4创建软链接

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

1.5创建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=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

1.6设置权限并启动Nginx

chmod 777 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

2.部署2台Tomcat应用服务器

停止防火墙并禁用SELinux

systemctl stop firewalld
setenforce 0

2.1安装JDK 

tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/

2.2配置环境变量

vim /etc/profile
 
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

加载环境变量
source /etc/profile

2.3安装并启动Tomcat

tar zxvf apache-tomcat-8.5.16.tar.gz
mv /opt/apache-tomcat-8.5.16/ /usr/local/tomcat
/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh

检查端口
netstat -ntap | grep 8080

3.动静分离配置

3.1Tomcat1服务器配置

创建JSP页面
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>


修改server.xml
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" />
</Host>


重启Tomcat服务
/usr/local/tomcat/bin/shutdown.sh 
/usr/local/tomcat/bin/startup.sh 

3.2Tomcat2服务器配置

创建JSP页面
mkdir /usr/local/tomcat/tomcat1/webapps/test
 
vim /usr/local/tomcat/tomcat1/webapps/test/index.jsp
 
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title>
</head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
</html>


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


重启Tomcat服务
/usr/local/tomcat/tomcat1/bin/shutdown.sh 
/usr/local/tomcat/tomcat1/bin/startup.sh 

4.Nginx服务器配置 

1.准备静态页面和静态图片

echo '<html><body><h1>汪铭是帅哥</h1></body></html>' > /usr/local/nginx/html/index.html
mkdir /usr/local/nginx/html/img
cp /root/game.jpg /usr/local/nginx/html/img

2.修改Nginx配置文件

vim /usr/local/nginx/conf/nginx.conf
 
http {
    ...
    upstream tomcat_server {
        server 172.16.58.10:8080 weight=1;
        server 172.16.58.20:8080 weight=1;
        server 172.16.58.30:8080 weight=1;
    }
 
    server {
        listen 80;
        server_name www.kgc.com;
        charset utf-8;
 
        location ~ .*\.jsp$ {
            proxy_pass http://tomcat_server;
            proxy_set_header HOST $host;   
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
 
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
            root /usr/local/nginx/html/img;
            expires 10d;
        }
 
        location / {
            root html;
            index index.html index.htm;
        }
    }
    ...
}

3.测试 

举报

相关推荐

0 条评论