Nginx配置、Nginx+Tomcat、动静分离==负载均衡配置转载

原创
小哥 3年前 (2022-12-19) 阅读数 4 #大杂烩

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

文章目录

  1. Tomcat简介

  • 最初是由Sun软件架构师James·邓肯·戴维森开发公司
  • 安装Tomcat之后,将使用或配置安装路径下的目录和文件Tomcat重要文件的
  1. Tomcat重要目录

  • bin :存储启动和关闭Tomcat脚本
  • conf :存放Tomcat不同的配置文件
  • doc:存放Tomcat文档
  • lib:存放Tomcat需要运行的库文件
  • logs:存放Tomcat执行时的LOG文件
  • src:存放Tomcat的源代码
  • webapps:Tomcat的主要Web发布目录
  • work:存放jsp编译后生成class文件
  1. Nginx应用

  • Nginx是一个非常好的HTTP服务器软件
  • 支持高达50 000对并发连接数的响应
  • 强大的静态资源处理能力
  • 运行稳定
  • 内存、CPU系统资源消耗非常低
  • 目前使用了许多大型网站。Nginx服务器充当后端网站程序的反向代理和负载平衡器,以提高整个站点的负载并发性。
  • 只能处理静态页面。
  • Apache可以处理动态和静态页面的处理。
  • Tomcat 支持动态页面处理。
  • Nginx负载平衡实施原则
  • Nginx通过反向代理实现负载平衡。
  1. 反向代理原则

  • Nginx负载平衡实施原则
  • Nginx配置反向代理的主要参数
  • upstream 服务池名 { }
  • 配置后端服务器池以提供响应数据
  • proxy_pass http://服务池名
  • 配置将访问请求转发到后端服务器池的服务器处理
  1. 动静分离原理

  • 当服务器从客户端接收请求时,既有静态资源,也有动态资源。Nginx提供服务、动态资源Nginx转发到后端
  1. Nginx静态处理的优点

  • Nginx处理静态页面效率更高Tomcat处理能力
  • 若Tomcat请求的数量1000次,则Nginx请求的数量6000次
  • Tomcat每秒吞吐量为0.6M,Nginx每秒吞吐量3.6M
  • Nginx处理静态资源的能力是Tomcat处理的6倍
  1. 实验要求

  • 需要部署两个后端Tomcat服务器
  • 要进行测试,请构建两个内容不同的网站
  • Tomcat部署与网站搭建步骤
  • 关闭firewall防火墙
  • 安装JDK,配置JAVA环境
  • 安装配置Tomcat
  • 创建/web/webapp1目录,修改server.xml,更改站点文件目录/web/webapp1/路径下
    /web/webapp1/在下面创建测试页index.jsp和测试
  1. 实验环境

  • 一台:Nginx 充当动态和静态分离的反向代理的静态页面 192.168.75.166
  • 一台:tomcat 处理为动态页面 192.168.75.134
  • 一台:tomcat 处理为动态页面 192.168.75.144

  1. 实验步骤

9.1 Nginx反向代理的配置 192.168.75.166

  • Nginx服务基础
  • Nginx:高稳定性
  • 系统资源消耗低
  • 对HTTP并发连接处理能力高(能处理高并发 活到现在的核心)
  • 单个物理服务器可以支持30000~50000并发请求

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

    pcre-devel : 支持正则表达式 pcre 正则表达式

    zlib-devel : 压缩功能

    tar zxvf nginx-1.12.2.tar.gz cd nginx-1.12.2 [root@localhost nginx-1.12.2]# useradd -M -s /sbin/nologin nginx

    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module make && make install ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

    设置Nginx系统引导启动 systemctl

    在/etc/init.d 在目录下新建Nginx文件是启动脚本

    [root@localhost init.d]# vim nginx

    !/bin/bash

    chkconfig:- 99 20

    description:Nginx Service Control Script

    PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" case "$1" in start) $PROG ;; stop) kill -s QUIT $(cat $PIDF) ;; restart) $0 stop $0 start ;; reload) kill -s HUP $(cat $PIDF) ;; *) echo "Usage:$0{start|stop|restart|reload}" exit 1 esac exit 0 [root@localhost init.d]# chmod +x nginx //添加权限

    [root@localhost init.d]# chkconfig --add nginx //添加到systemctl启动文件设置

    [root@localhost init.d]# service nginx stop

9.2 Tomcat 1配置192.168.75.134

iptbales -F    
setenforce 0
准备JDK安装包

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

 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

java -version   //查看版本号

部署Tomcat

[root@promote opt]# tar zxvf apache-tomcat-9.0.16.tar.gz  -C /usr/local/
[root@promote opt]# cd /usr/local/
[root@promote local]# ls
apache-tomcat-9.0.16  etc    include  lib64    sbin   src
bin                   games  lib      libexec  share
[root@promote local]# mv apache-tomcat-9.0.16/ tomcat
[root@promote local]# cd tomcat/
[root@promote tomcat]# ll
总用量 124
drwxr-x--- 2 root root  4096 8月  13 09:53 bin
-rw-r----- 1 root root 19203 2月   5 2019 BUILDING.txt
drwx------ 2 root root   238 2月   5 2019 conf
-rw-r----- 1 root root  6095 2月   5 2019 CONTRIBUTING.md
drwxr-x--- 2 root root  4096 8月  13 09:53 lib
-rw-r----- 1 root root 57092 2月   5 2019 LICENSE
drwxr-x--- 2 root root     6 2月   5 2019 logs
-rw-r----- 1 root root  2333 2月   5 2019 NOTICE
-rw-r----- 1 root root  3255 2月   5 2019 README.md
-rw-r----- 1 root root  6854 2月   5 2019 RELEASE-NOTES
-rw-r----- 1 root root 16262 2月   5 2019 RUNNING.txt
drwxr-x--- 2 root root    30 8月  13 09:53 temp
drwxr-x--- 7 root root    81 2月   5 2019 webapps
drwxr-x--- 2 root root     6 2月   5 2019 work
[root@promote tomcat]# cd bin/
[root@promote bin]# ln -s /usr/local/tomcat/bin/startup.sh /usr/bin/
[root@promote bin]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/bin/

[root@promote bin]# startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@promote bin]# netstat -natp | grep 8080
tcp6       0      0 :::8080                 :::*                    LISTEN      13752/java          
[root@promote bin]#     

9.3 Nginx配置

  • Nginx 处理静态图片,Tomcat处理动态图片 nginx 配置
  • 代码是动态的
  • 图片是静态的
  • 动态分离配置
  • nginx 服务器的配置 192.168.75.166
  • proxy_pass 模块功能跳转到另一个服务器

    vim /usr/local/nginx/conf/nginx.conf

         location ~.*.jsp$ {
         proxy_pass http://192.168.75.134:8080;
        proxy_set_header Host $host;  ##已配置Web服务器防盗链

    }

    vim /usr/local/nginx/html/index.html

    <!DOCTYPE html>

    静态页面

    静态页面

    这是一个静态页面。

9.4 Tomcat 1 192.168.75.134 配置

  • Tomcat的test /indexJSP 和Nginx存储图片的路径应相同,否则无法显示图片。

    [root@localhost bin]# mkdir /usr/local/tomcat/webapps/test

    [root@localhost bin]# vim /usr/local/tomcat/webapps/test/index.jsp

    <!DOCTYPE html> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html14/loose.dtd">

    动态页面
    动态页面

9.5 Nginx配置 192.168.75.166

  • 图像是静态资源,因为Nginx它处理静态页面。所以照片应该放进去Nginx目录,但带有Tomcat的JSP文件的路径对应于

    vim /usr/local/nginx/conf/nginx.conf

    location ~.*.(gif|jpg|jpeg|png|bmg|swf|css)$ { root html; expires 30d; }

    cd /usr/local/nginx/html

    mkdir test 把照片放进去 /usr/local/nginx/html/test 目录,因为需要和tomcat 1 相对应

  • Tomcat 1 192.168.75.134 配置

    vim /usr/local/tomcat/webapps/test/index.jsp

    <!DOCTYPE html> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html14/loose.dtd">

    动态页面
    动态页面
    //添加

9.6 验证 图像验证动态和静态分离

  • 图像验证动态和静态分离

10 . 实验2:负载平衡

10.1 实验环境

  • Nginx 192.168.75.166 作为负载平衡服务器
  • Tomcat1 192.168.75.134
  • Tomcat 2 192.168.75.144 作为后端web服务器
  • 以Nginx作为负载平衡器,Tomcat作为应用程序服务器

10.2 Tomcat 2 192.168.75.144 配置

  • 安装Tomcat 服务
  • 像之前Tomcat1 相同的步骤,请参见详细信息Tomcat1
  • 因为之前Tomcat1已经部署Tomcat,因此您只需要部署Tomcat2 服务器内容详细信息如下

    mkdir -pv /web/webapp1 cd /web/webapp1 vim index.jsp

    <!DOCTYPE html> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.Date" %> <%@ page import="java.text.SimpleDateFormat" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/ html14/loose.dtd">

    web web web web web webb !!!!
    web web web web web webb !!!!

    ****修改配置文件***

    vim /usr/local/tomcat/conf/server.xml

    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">

    //添加 //添加

10.3 Nginx服务器配置192.168.75.166

  • 部署Nginx 详见目录9.1

    vim /usr/local/nginx/conf/nginx.conf

    **在http全局添加***

    upstream tomcat_server { server 192.168.75.134:8080 weight=1; server 192.168.75.144:8080 weight=5; //权重越高,优先级越高 }

    在server中添加 location / { root html; index index.html index.htm; proxy_pass http://tomcat_server; //添加 }

10.4 验证

  • 192.168.75.166


版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除