• Nginx


    Nginx

    课程简介(负载均衡)

    1Nginx安装与配置

    2NginxTomcat整合及负载均衡

    Nginx概述与安装

    Nginx概述

    Nginx是一款高性能的、轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

     

    官网地址:http://Nginx.org/

    (1) :使用yum安装nginx,安装nginx

     

    rpm -af|grep nginx: 检索当前环境是否安装了nginx

    安装nginx

     

    rpm -Uvh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

     (2):使用下面命令安装nginx

     

    yum -y install nginx

     (3):启动nginx

    service nginx start   #centos6

     (4):防火墙允许通过80端口

    复制代码

    vim /etc/sysconfig/iptables

     

    # Generated by iptables-save v1.4.7 on Thu Dec 28 19:47:19 2017

    *filter

    :INPUT ACCEPT [0:0]

    :FORWARD ACCEPT [0:0]

    :OUTPUT ACCEPT [21691:949300]

    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

    -A INPUT -p icmp -j ACCEPT

    -A INPUT -i lo -j ACCEPT

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

    -A INPUT -j REJECT --reject-with icmp-host-prohibited

    -A FORWARD -j REJECT --reject-with icmp-host-prohibited

    COMMIT

    复制代码

     (5):重启防火墙

    service iptables restart

     

    8、访问测试

    http://IP

     

    出现以上画面,证明Nginx已经正常启动了。

    部署Nginx+Tomcat集群

    安装第1Tomcat

    1:上传Tomcatlinux

    2:解压Tomcat/usr/local

    tar -xvf apache-tomcat-8.5.15.tar.gz  -C /usr/local

     

    3:修改解压缩后的Tomcat文件夹名字

    mv /usr/local/apache-tomcat-8.5.15 /usr/local/tomcat1

     

    4:修改第一套Tomcat配置文件

    vi  /usr/local/tomcat1/conf/server.xml

    //按下 i 键进入编辑状态

    找到8080这个端口号,修改为8081

      <Connector port="8081" protocol="HTTP/1.1"

                   connectionTimeout="20000"

                   redirectPort="8443" />

    找到8009这个端口号,修改为8010

    <!-- Define an AJP 1.3 Connector on port 8009 -->

        <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

    找到节点Engine,增加内容 jvmRoute="jvm1"

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

    //替换完成后按下Esc,然后按下shift+;,输入wq保存退出

     

    5:启动Tomcat服务器1

    cd /usr/local/tomcat1/bin

    启动命令:./startup.sh

    注意:如果不能正常启动,需要修改  vi   /etc/hosts

    增加:

    127.0.0.1   apache-tomcat           //主机名字,请使用命令 hostname查找

     

    6:测试服务器是否正常启动

    打开浏览器输入http://服务器地址:8081

    看是否能浏览到TOMCAT欢迎页面。

    安装第2Tomcat

    1:上传Tomcatlinux

    2:解压Tomcat/usr/local

    tar -xvf apache-tomcat-8.5.15.tar.gz  -C /usr/local

     

    3:修改解压缩后的Tomcat文件夹名字

    mv /usr/local/apache-tomcat-8.5.15 /usr/local/tomcat2

     

    4:修改第2Tomcat配置文件

    vi  /usr/local/tomcat2/conf/server.xml

    //按下 i 键进入编辑状态

    找到8080这个端口号,修改为8082

      <Connector port="8082" protocol="HTTP/1.1"

                   connectionTimeout="20000"

                   redirectPort="8443" />

    找到8009这个端口号,修改为8011

    <!-- Define an AJP 1.3 Connector on port 8009 -->

        <Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />

    找到8005这个端口号,修改为9005

    <Server port="9005" shutdown="SHUTDOWN">

    找到节点Engine,增加内容 jvmRoute="jvm2"

    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm2">

    //替换完成后按下Esc,然后按下shift+;,输入wq保存退出

     

    5: 启动Tomcat服务器2

    cd /usr/local/tomcat2/bin

    启动命令:./startup.sh

     

    6: 测试服务器是否正常启动

    打开浏览器输入http://服务器地址:8082

    看是否能浏览到TOMCAT欢迎页面。

    配置Nginx负载均衡。

     

    1、修改Nginx配置文件

    vi   /etc/nginx/conf.d/default.conf

    upstream www {

       server 10.10.22.161:8081;

       server 10.10.22.161:8082;

      }

    server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  /var/log/nginx/log/host.access.log  main;

        location / {

            root   /usr/share/nginx/html;

            index  index.html index.htm;

            proxy_pass  http://www;    

        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   /usr/share/nginx/html;

        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80

        #

        #location ~ .php$ {

        #    proxy_pass   http://127.0.0.1;

        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        #location ~ .php$ {

        #    root           html;

        #    fastcgi_pass   127.0.0.1:9000;

        #    fastcgi_index  index.php;

        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

        #    include        fastcgi_params;

        #}

        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /.ht {

        #    deny  all;

        #}

    }

     

    https://blog.csdn.net/wangfei0904306/article/details/72834286

     

    setsebool -P httpd_can_network_connect 1

     

     

     

    Nginx+Tomcat动静分离测试

    部署jsp文件

    2Tomcat上部署JSP

    部署路径如下:

    服务器1/usr/local/tomcat1/webapps/ROOT

    服务器2/usr/local/tomcat2/webapps/ROOT

    文件名1.jsp

    <%@ pageimport="java.util.*,java.text.*" %>

    <html>

    <head>

        <title> Session Test</title>

    </head>

    <body >

    <%

       Date dNow = new Date( );

       SimpleDateFormat ft =

       new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");

       out.print( "<h2 align="center">" + ft.format(dNow) + "</h2>");

    %>

    <h3>pic<h3/>

    <img src="1.jpg"/>

    </body>

    </html>

     

    同时上传1.jpg2Tomcat服务器和1.jsp放同一文件夹。

    测试JSP

    浏览器访问apache所在的主机IP地址:http://IP/, 显示如图一所示页面,图片可以正常显示。

     

    配置Nginx动静分离

    1、修改Nginx配置文件

    vi   /etc/nginx/conf.d/default.conf

    upstream www{

       server 192.168.22.83:8081;

       server 192.168.22.83:8082;

      }

    server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  /var/log/nginx/log/host.access.log  main;

        location / {

            root   /usr/share/nginx/html;

            index  index.html index.htm;

           proxy_pass http://www;

     

        }

        location ~ .(html|css|js|gif|jpg|jpeg|png|bmp|swf)$ {

           root /usr/share/nginx/html;

        }

     

        location ~ .(jsp|do|action)$ {

           proxy_pass http://www;

        }

         

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   /usr/share/nginx/html;

        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80

        #

        #location ~ .php$ {

        #    proxy_pass   http://127.0.0.1;

        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        #location ~ .php$ {

        #    root           html;

        #    fastcgi_pass   127.0.0.1:9000;

        #    fastcgi_index  index.php;

        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;

        #    include        fastcgi_params;

        #}

        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        #location ~ /.ht {

        #    deny  all;

        #}

    }

    重启Nginx

    浏览器访问nginx所在的主机IP地址:http://IP/, 显示如图而所示页面,图片不能正常显示了

     

    Nginx服务器的WEB目录上传1.jpg  

     /usr/share/nginx/html/1.jpg

    在此浏览,图片可以正常显示了!

     

    Nginx+Tomcat集群负载均衡测试

    Nginx负载均衡策略

    1、轮询(默认)

    每个web请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

        upstream 名字 {

            server 127.0.0.1:8081;

            server 127.0.0.1:8082;

        }

    2weight 权重

    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况,weight默认是1

    #服务器A和服务器B的访问比例为:2-1;比如有3个请求,前两个会访问A,三个访问B,其它规则和轮询一样。

        upstream nginxDemo {

            server 127.0.0.1:8081 weight=2; #服务器A

            server 127.0.0.1:8082; #服务器B

        }

    3ip_hash  

    每个请求按访问iphash值分配,这样同一客户端连续的Web请求都会被分发到同一服务器进行处理,可以解决session的问题。当后台服务器宕机时,会自动跳转到其它服务器。

        upstream nginxDemo {

            ip_hash;

            server 127.0.0.1:8081 weight=2; #服务器A

            server 127.0.0.1:8082; #服务器B

        }

     

     

    解决session共享问题 

     

    利用redis !!

    因为 session 是键值对

    而redis 恰好是以键值对形式进行存储.....

  • 相关阅读:
    cs硕士妹子找工作经历【阿里人搜等互联网】
    EJB到底是什么,真的那么神秘吗??
    到底EJB是什么
    安全性测试:
    掌握 Promise 的逻辑方法
    VS2019 不能下载的解决办法
    Java8基础系列-Stream
    周期模型(典型的几种):
    软件生存周期及其模型是什么?
    试述软件的概念和特点?软件复用的含义?构件包括哪些?
  • 原文地址:https://www.cnblogs.com/masterhxh/p/13896342.html
Copyright © 2020-2023  润新知