nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

nginxのアプリケーション

nginxのは非常に良いHTTPサーバソフトウェアです

  • 50,000の同時接続に対応レスポンスアップ
  • これは、静的なリソースに対処するための強力な能力を持っています
  • 安定しました
  • メモリ、CPUやその他のシステム・リソースの消費量が非常に低いです

現在では、多くの大規模なサイトでは、ロードの並行サイト全体を持ち上げるようにリバースプロキシとロードバランサのバックエンドWebアプリケーションとしてnginxのサーバーを使用します

実装原理のバランスをとるnginxの負荷

nginxのリバースプロキシを設定するための主なパラメータ

上流サービスプール名{}

に応じてデータを提供するために、バックエンドのサーバー・プールを構成します

_pass PROXY_ HTTP:// Serviceプール名

サーバプロセスのバックエンド・サーバー・プールへのアクセス要求を転送するように設定

nginxのは、静的な利点を扱います

  • nginxの処理効率は処理能力Tomcatの静的なページよりもはるかに高いです
  • 要求された量Tomcatは6000 nginxのために要求された1000倍量であれば
  • 毎秒スループットが0.6M、nginxのための第二のスループットあたり3.6MであるTOMCAT
  • 静的リソースに対処するnginxの能力は6回Tomcatプロセスで、利点が明らかです

静的および動的な分離原理

サーバーは、静的リソースだけでなく、動的なリソースの両方を、クライアントからの要求を受け、

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

実験環境:

Nginx服务器:192.168.52.135
Tomcat服务器1:192.168.52.134
Tomcat服务器2:192.168.52.150

図1に示すように、ツールキットは、ホストからの実験のうちの共有を希望

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

コンフィギュレーションをロードバランシング:

まず、Tomcatサーバーを構築1

1、インストールJDK

[root@tomcat1 ~]# mkdir /mnt/tools   //创建挂载目录
[root@tomcat1 ~]# mount.cifs //192.168.100.100/tools /mnt/tools/   //挂载共享工具包
Password for root@//192.168.100.100/tools:  
[root@tomcat1 ~]# cd /mnt/tools/tomcat/   //切换到挂载目录
[root@tomcat1 tomcat]# ls
12D18CFCD6599AFF0445766ACC4CA231C5025773.torrent  apache-jmeter-5.1.zip        jdk-8u201-linux-x64.rpm
apache-jmeter-5.1                                 apache-tomcat-9.0.16.tar.gz  tomcat优化压测.jmx
[root@tomcat1 tomcat]#
[root@tomcat1 tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm   //直接安装rpm包

2、環境変数を設定します

[root@tomcat1 tomcat]# cd /usr/java/jdk1.8.0_201-amd64/   //切换目录
[root@tomcat1 jdk1.8.0_201-amd64]# vim /etc/profile   //修改系统环境变量文件
##文件末尾添加环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
[root@tomcat1 jdk1.8.0_201-amd64]# source /etc/profile   //重新加载配置文件
[root@tomcat1 jdk1.8.0_201-amd64]# java -version   //查看版本
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
[root@tomcat1 jdk1.8.0_201-amd64]# 

3、Tomcatの設定

[root@tomcat1 jdk1.8.0_201-amd64]# cd /mnt/tools/tomcat/   //切换到挂载目录
[root@tomcat1 tomcat]# tar zxf apache-tomcat-9.0.16.tar.gz -C /opt/   //解压到“/opt/”目录
[root@tomcat1 tomcat]# mv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat9   //移动到“/usr/local/”目录并重命名
[root@tomcat1 bin]# ln -s /usr/local/tomcat9/bin/startup.sh /usr/bin/   //建立启动脚本软链接
[root@tomcat1 bin]# ln -s /usr/local/tomcat9/bin/shutdown.sh /usr/bin/   //建立关闭脚本软链接
[root@tomcat1 bin]#
[root@tomcat1 bin]# startup.sh    //开启Tomcat服务
Using CATALINA_BASE:   /usr/local/tomcat9
Using CATALINA_HOME:   /usr/local/tomcat9
Using CATALINA_TMPDIR: /usr/local/tomcat9/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat1 bin]#
[root@tomcat1 bin]# netstat -ntap | grep 8080   //查看端口
tcp6       0      0 :::8080                 :::*                    LISTEN      19488/java          
[root@tomcat1 bin]# 
[root@tomcat1 bin]# systemctl stop firewalld.service    //关闭防火墙
[root@tomcat1 bin]# setenforce 0   //关闭增强性安全功能
[root@tomcat1 bin]#

4、テストアクセス

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

5、サイトやファイルのホームを追加

[root@tomcat1 bin]# mkdir -pv /web/webapp1   //创建站点目录
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
[root@tomcat1 bin]# vim /web/webapp1/index.jsp   //添加首页文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
  <title>JSP test1 page</title>
 </head>
 <body>
  <% out.println("Welcome to test site,http://www.test1.com");%>
 </body>
</html>

6、Tomcatの設定ファイルを変更

[root@tomcat1 bin]# cd ../conf/   //切换目录
[root@tomcat1 conf]# vim server.xml   //修改配置文件
    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
                        ##在Host标签里,添加下面内容
        <Context docBase="/web/webapp1" path="" reloadable="false">
        </Context>
[root@tomcat1 conf]# shutdown.sh    //关闭服务
Using CATALINA_BASE:   /usr/local/tomcat9
Using CATALINA_HOME:   /usr/local/tomcat9
Using CATALINA_TMPDIR: /usr/local/tomcat9/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar
[root@tomcat1 conf]# startup.sh    //开启服务
Using CATALINA_BASE:   /usr/local/tomcat9
Using CATALINA_HOME:   /usr/local/tomcat9
Using CATALINA_TMPDIR: /usr/local/tomcat9/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat1 conf]# 

7、Webサイトのテストをご覧ください。

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

第二に、Tomcatサーバーを構築2

1、インストールJDK

[root@tomcat2 ~]# mkdir /mnt/tools   //创建挂载目录
[root@tomcat2 ~]# mount.cifs //192.168.100.100/tools /mnt/tools/   //挂载共享工具包
Password for root@//192.168.100.100/tools:  
[root@tomcat2 ~]# cd /mnt/tools/tomcat/   //切换到挂载目录
[root@tomcat2 tomcat]# rpm -ivh jdk-8u201-linux-x64.rpm   //直接安装rpm包

2、環境変数を設定します

[root@tomcat2 tomcat]# cd /usr/java/jdk1.8.0_201-amd64/   //切换目录
[root@tomcat2 jdk1.8.0_201-amd64]# vim /etc/profile   //修改系统环境变量文件
##文件末尾添加环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
[root@tomcat2 jdk1.8.0_201-amd64]# source /etc/profile   //重新加载配置文件
[root@tomcat2 jdk1.8.0_201-amd64]# java -version   //查看版本

java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
[root@tomcat2 jdk1.8.0_201-amd64]#

3、Tomcatの設定

[root@tomcat2 jdk1.8.0_201-amd64]# cd /mnt/tools/tomcat/   //切换到挂载目录
[root@tomcat2 tomcat]# tar zxf apache-tomcat-9.0.16.tar.gz -C /opt/    //解压到“/opt/”目录
[root@tomcat2 tomcat]# mv /opt/apache-tomcat-9.0.16/ /usr/local/tomcat9   //移动到“/usr/local/”目录并重命名
[root@tomcat2 tomcat]# ln -s /usr/local/tomcat9/bin/startup.sh /usr/bin/   //建立启动脚本软链接
[root@tomcat2 tomcat]# ln -s /usr/local/tomcat9/bin/shutdown.sh /usr/bin/   //建立关闭脚本软链接
[root@tomcat2 tomcat]# startup.sh    //开启服务
Using CATALINA_BASE:   /usr/local/tomcat9
Using CATALINA_HOME:   /usr/local/tomcat9
Using CATALINA_TMPDIR: /usr/local/tomcat9/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat2 tomcat]# netstat -ntap | grep 8080   //查看端口
tcp6       0      0 :::8080                 :::*                    LISTEN      52941/java          
[root@tomcat2 tomcat]#
[root@tomcat2 tomcat]# systemctl stop firewalld.service    //关闭防火墙
[root@tomcat2 tomcat]# setenforce 0   //关闭增强性安全功能
[root@tomcat2 tomcat]# 

4、アクセスを検出

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

5、サイトやファイルのホームを追加

[root@tomcat2 tomcat]# mkdir -pv /web/webapp1   //创建站点目录
mkdir: 已创建目录 "/web"
mkdir: 已创建目录 "/web/webapp1"
[root@tomcat2 tomcat]# vim /web/webapp1/index.jsp   //添加首页文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
 <head>
  <title>JSP test1 page</title>
 </head>
 <body>
  <% out.println("Welcome to test site,http://www.test2.com");%>
 </body>
</html>

6、Tomcatの設定ファイルを変更

[root@tomcat2 tomcat]# cd /usr/local/tomcat9/conf/   //切换目录
[root@tomcat2 conf]# vim server.xml    //修改配置文件
    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
                        ##在Host标签里,添加下面内容                       
        <Context docBase="/web/webapp1" path="" reloadable="false">
        </Context>
[root@tomcat2 conf]# shutdown.sh     //关闭服务
Using CATALINA_BASE:   /usr/local/tomcat9
Using CATALINA_HOME:   /usr/local/tomcat9
Using CATALINA_TMPDIR: /usr/local/tomcat9/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar
[root@tomcat2 conf]# startup.sh    //开启服务
Using CATALINA_BASE:   /usr/local/tomcat9
Using CATALINA_HOME:   /usr/local/tomcat9
Using CATALINA_TMPDIR: /usr/local/tomcat9/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_201-amd64
Using CLASSPATH:       /usr/local/tomcat9/bin/bootstrap.jar:/usr/local/tomcat9/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat2 conf]# 

7、アクセスサイトを検出

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

nginxのサーバーまで第三に、セット

1、パッケージのインストール環境

[root@nginx ~]# yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++
............//省略过程
[root@nginx ~]#

図2に示すように、ソースパッケージnginxのを抽出

[root@nginx ~]# mkdir /mnt/tools   //创建挂载目录
[root@nginx ~]# mount.cifs //192.168.100.100/tools /mnt/tools/   //挂载共享目录
Password for root@//192.168.100.100/tools:  
[root@nginx ~]# cd /mnt/tools/LNMP/   //切换到挂载目录
[root@nginx LNMP]# ls
Discuz_X3.4_SC_UTF8.zip    nginx-1.12.2.tar.gz  php-7.1.20.tar.gz
mysql-boost-5.7.20.tar.gz  php-7.1.10.tar.bz2
[root@nginx LNMP]# tar zxf nginx-1.12.2.tar.gz -C /opt/    //解压源码包
[root@nginx LNMP]# cd /opt/   
[root@nginx opt]# ls
nginx-1.12.2  rh
[root@nginx opt]# 

3、nginxのサービスをコンパイルしてインストールします

[root@nginx opt]# cd nginx-1.12.2/   //切换目录
[root@nginx nginx-1.12.2]# useradd -M -s /sbin/nologin nginx   //创建用户nginx
[root@nginx nginx-1.12.2]# ./configure \   //配置nginx服务
> --prefix=/usr/local/nginx \   //安装路径
> --user=nginx \   //属主
> --group=nginx \   //属组
> --with-file-aio \   //启用file aio支持(一种APL文件传输格式)
> --with-http_stub_status_module \   //获取nginx自上次启动以来的工作状态
> --with-http_gzip_static_module \   //在线实时压缩输出数据流
> --with-http_flv_module \   //为Flash Video(FLV)文件 提供服务端伪流媒体支持
> --with-http_ssl_module    //为HTTPS提供了必要的支持
[root@nginx nginx-1.12.2]# make && make install

4、nginxのサービス管理の最適化

[root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/   //为nginx命令建立软链接,方便系统识别
[root@nginx nginx-1.12.2]# 
[root@nginx nginx-1.12.2]# vim /etc/init.d/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@nginx nginx-1.12.2]# chmod +x /etc/init.d/nginx   //给脚本添加执行权限
[root@nginx nginx-1.12.2]# chkconfig --add nginx   //添加让service工具能够识别
[root@nginx nginx-1.12.2]#
[root@nginx nginx-1.12.2]# service nginx start    //开启服务
[root@nginx nginx-1.12.2]# service nginx stop    //关闭服务
[root@nginx nginx-1.12.2]#

5、サービス構成ファイルを変更nginxの

[root@nginx nginx-1.12.2]# cd /usr/local/nginx/conf/   //切换目录
[root@nginx conf]# ls
fastcgi.conf          fastcgi_params.default  mime.types          nginx.conf.default   uwsgi_params
fastcgi.conf.default  koi-utf                 mime.types.default  scgi_params          uwsgi_params.default
fastcgi_params        koi-win                 nginx.conf          scgi_params.default  win-utf
[root@nginx conf]# vim nginx.conf   //修改配置文件

    upstream tomcat-server {   ##添加tomcat服务器
                server 192.168.52.134:8080 weight=1;
                server 192.168.52.150:8080 weight=1;
        }

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://tomcat-server;   ##添加代理
        }

[root@nginx conf]# nginx -t   //检查配置文件格式
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@nginx conf]# 
[root@nginx conf]# service nginx start    //开启服务
[root@nginx conf]# netstat -ntap | grep nginx   //查看端口
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      41747/nginx: master 
[root@nginx conf]# systemctl stop firewalld.service    关闭防火墙
[root@nginx conf]# setenforce 0   //关闭增强性安全功能
[root@nginx conf]# 

第四に、検出負荷分散サービス

1、アクセスnginxのプロキシサーバーのIPアドレス

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

2、負荷分散かどうかをテストするには、ページを更新

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)
(本番環境、2つのページは意図的に異なるセットのデモを容易にするためである、同じことを必要とします)

設定静的および動的分離

A、nginxのサーバーの設定

1、サービス構成ファイルを変更nginxの

[root@nginx conf]# vim nginx.conf   //修改配置文件
##不用修改
          upstream tomcat-server {
                server 192.168.52.134:8080 weight=1;
                server 192.168.52.150:8080 weight=1;
        }

        location / {
            root   html;
            index  index.html index.htm;
           # proxy_pass http://tomcat-server;   ##注释
        }
##添加以下内容
        location ~.*.jsp$ {
            proxy_pass http://tomcat-server;
            proxy_set_header Host $host;
        }

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

2、ファイルnginxのサービスホームを変更

[root@nginx conf]# vim ../html/index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">   //支持中文字符集
<title>静态页面</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>静态页面</h1>
<p>这是静态页面</p>
</body>
</html>
[root@nginx conf]# service nginx stop 
[root@nginx conf]# service nginx start 
[root@nginx conf]#

3、テストホーム

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

二、Tomcatサーバーの設定1

新しいファイルを作成します。ホーム

[root@tomcat1 ~]# cd /usr/local/tomcat9/webapps/   //切换目录
[root@tomcat1 webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@tomcat1 webapps]# mkdir test   //创建站点目录
[root@tomcat1 webapps]# cd test/
[root@tomcat1 test]# 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/ html4/loose. dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态页面1</title>
</head>
<body>
<div>动态页面1</div>
</body>
</html>

三、Tomcatサーバーの設定2

新しいファイルを作成します。ホーム

[root@tomcat2 ~]# cd /usr/local/tomcat9/webapps/   //切换目录
[root@tomcat2 webapps]# ls
docs  examples  host-manager  manager  ROOT
[root@tomcat2 webapps]# mkdir test   //创建站点目录
[root@tomcat2 webapps]# cd test/
[root@tomcat2 test]# 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/ html4/loose. dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>动态页面2</title>
</head>
<body>
<div>动态页面2</div>
</body>
</html>

第四に、静的及び動的分離するかどうかをテスト

1、nginxのサーバーのIPアドレスを経由して、ダイナミックファイルアクセス

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

2、ページ、ロード・バランシング・テストをリフレッシュ

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

第五は、Tomcatサーバーは、nginxのサーバーのサイトの写真を呼び出してみましょう

2つのTomcatサーバー・ページ・ファイル内のそれぞれ1、、、写真を追加

[root@tomcat1 test]# vim index.jsp 
<div>动态页面1</div><br><img src="picture.jpg">   //只需修改此行

[root@tomcat2 test]# vim index.jsp
<div>动态页面2</div><br><img src="picture.jpg">   //只需修改此行

2、nginxのサーバー指定されたサイトへ画像を追加

[root@nginx conf]# cd /mnt/tools/   //切换到挂载点
[root@nginx tools]# mkdir -p /usr/local/nginx/html/test   //创建站点目录test,注意必须与Tomcat站点相同
[root@nginx tools]# cp picture.jpg /usr/local/nginx/html/test/   //复制图片到站点
[root@nginx tools]# 

3、テストアクセス

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

4、再び、ロード・バランシング・テストをリフレッシュ

nginxの+ Tomcat--のconfigureのロードバランシングと静的および動的の分離(本当!)

おすすめ

転載: blog.51cto.com/14449541/2455755