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 恰好是以键值对形式进行存储.....

 

posted @ 2020-10-29 13:54  master_hxh  阅读(202)  评论(0编辑  收藏  举报