• nginx反向代理负载均衡(轮询权重IPHash)


    Nginx反向代理

    1.1 实现图片回显

    1.1.1 反向代理

    说明:当用户发出image.jt.com/2018/1.jpg,首先将请求发往Nginx.经过Nginx内部配置自动进行路径的切换.E:jt-upload/2018/1.jpg并且访问切换后的路径.将返回的结果再次返回给浏览器.这时浏览器可以进行正常的展现

    1.1.2 Nginx介绍

    Nginx是一款轻量级Web 服务器/反向代理服务器及电子邮件IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,

    轻量级:

    从代码角度看

    实现代码时,代码设计耦合性较低.

    占用内存

    占用内存特别的少.例如spring-core大小不到1M,可以运行在小型机.

    1.1.3 Nginx的实例化

    命令:

    start nginx   启动

    nginx -s reload 重启命令

    nginx -s stop   停止

    说明:

    当启动nginx时需要依赖于nginx.exe文件.所以应该在exe的根目录执行启动命令.

    1.1.4 Nginx多实例

    说明:当启动nginx时 一次启动会有2nginx进程.一个是主进程,一个是守护进程.当主进程意外停止时,这时守护进程会自动的启动一个主进程.保证服务正常启动.所以在关闭nginx时先关闭守护进程之后再关闭主进程.

    1.1.5 Nginx reload命令作用

    Nginx启动时,如果配置文件出错了,Nginx实例将不能正常启动.这时可以通过Nginx -s reload 查询报错信息,方便用户进行修改.

    1.1.6 Nginx的配置文件

    说明:

    Server表示服务,Nginx中可以配置很多项服务.

    Listen表示端口监听:80.目的就是为了让nginx起作用.

    server_name 表示服务的名称.浏览器中访问的具体路径.

    Location 表示当Nginx成功拦截请求后做的处理.

    root   表示转发到文件夹中.这是一个关键字 不要随便修改.

    Index   默认访问路径

    server {

            listen       80;

            server_name  localhost;

     

     

            location / {

                root   html;

                index  index.html index.htm;

            }

    1.1.7 定义图片服务器

    #配置图片服务器

    server {

    listen 80;

    server_name image.jt.com;

     

    location / {

    root E:jt-upload;

    }

    }

    1.1.8 修改Host文件

    1.1.9 上传图片出现问题检测

    1.检测虚拟的url是否正确

    2.检测image.jt.com与虚拟路径是否一致

    3.Nginx重启是否报错

    4.检测Nginx.conf文件

    1.1.10 为什么要改host?

    说明:

    只有修改了host文件,当浏览器发送image.jt.com,才会将请求发往本地.之后Nginx才能实现反向代理的过程

    1.2 实现后台跳转

    1.2.1 需求

    当用户输入manage.jt.com时自动的跳转到jt后台服务器中.127.0.0.1:8091

    1.2.2 添加后台的Host文件

    作用:能够将用户的连接发往本机

    127.0.0.1 manage.jt.com

     

    1.2.3 配置nginx实现后台转向

    #添加后台管理

    server {

    listen 80;

    server_name manage.jt.com;

     

    location / {

    proxy_pass http://127.0.0.1:8091;

    }

    }

    1.2.4 Nginx配置请求头

    将以下代码添加到nginx.conf文件的server_name

    #添加京淘后台管理

    server {

    listen 80;

    server_name manage.jt.com;

    proxy_set_header X-Forwarded-Host $host;

    proxy_set_header X-Forwarded-Server $host;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

     

    location / {

    proxy_pass http://127.0.0.1:8091;

    }

    }

    Nginx的负载均衡

    2.1 后台服务器

    2.1.1 Tomcat集群部署

    说明:通过京淘后台项目搭建tomcat集群.搭建3tomcat服务器

    目的:为了抗击高并发.

    2.1.2 项目打包

    1Cleanproject ----  clean2.target目录删除  3.打包install,除非Install将首字母大写(web.xml

    将三个项目都install.之后形成jar包文件,改名为ROOT.war

    2.1.3 Tomcat集群部署

    分别修改3tomcat的端口号

    规则:依次加1

    2.1.4 Nginx实现负载均衡

    1. 配置负载均衡项

    #nginx实现负载均衡

    upstream jt {

    server 127.0.0.1:8080;

    server 127.0.0.1:8090;

    server 127.0.0.1:8091;

    }

    1. (linux)配置负载均衡项

    #nginx实现负载均衡

    upstream jt {

    server 192.168.161.130:8080;

    server 192.168.161.130:8090;

    server 192.168.161.130:8091;

    }

     

    1. 实现负载均衡

    #添加后台管理

    server {

    listen 80;

    server_name manage.jt.com;

    location / {

    proxy_pass http://jt;

    }

    }

    说明:nginx中默认的访问方式是轮询的方式.1-3依次执行.

    2.2 负载均衡的方式

    2.2.1 轮询

    说明:因为在公司中,服务器的价格和性能是不一样的.一般数据库服务器是最好的.一般不会都采用性能最优的服务器因为价格太贵.一般公司都是好坏都有.

    2.2.2 权重(重点掌握)

    说明:尽可能的让性能优良的服务器处理更多的请求.

    #nginx实现负载均衡  默认都是轮询 采用权重的方式数值越大越容易被访问

    upstream jt {

    server 127.0.0.1:8080 weight=6;

    server 127.0.0.1:8090 weight=1;

    server 127.0.0.1:8091 weight=3;

    }

    2.2.3 IP_HASH

    说明:

    根据用户的访问IP地址,经过内部HASH计算会指定一台服务器绑定.那么以后该用户访问项目时,都会访问指定的那台服务器.

    例子:例如本机启动了IP_HASH则只会访问8080服务器

    作用:一般企业如果实现低级的Session共享则使用IP_HASH.

    问题:容易产生Session黏着问题,所以一般不用Ip_hash

    #nginx实现负载均衡  默认都是轮询 采用权重的方式数值越大越容易被访问

    #如果在配置服务器时配置ip_hash 则会自动按照IP进行绑定,其他配置将不起作用

    upstream jt {

    ip_hash;

    server 127.0.0.1:8080 weight=6;

    server 127.0.0.1:8090 weight=1;

    server 127.0.0.1:8091 weight=3;

    }

    2.2.4 备用机机制

    说明:

    如果当前的服务器都处于忙碌状态,没有时间响应新的请求,这时如果配置了备用机.则备用机会承担一部分压力.如果主服务器压力减小,可以正常处理用户请求.则备用机处于等待状态.

    #nginx实现负载均衡  默认都是轮询 采用权重的方式数值越大越容易被访问

    #如果在配置服务器时配置ip_hash 则会自动按照IP进行绑定,其他配置将不起作用

    #ip_hash;

    upstream jt {

     

    server 127.0.0.1:8080 weight=6;

    server 127.0.0.1:8090 weight=1 backup;

    server 127.0.0.1:8091 weight=3;

    }

    2.2.5 上线部署

    上线的步骤:

    1.先修改nginx配置文件  让需要上线的服务器down

    2.应该将需要上线的服务停止

    3.之后将war包发布.

    4.启动服务器

    5.将服务器还原回nginx(down去掉)

    6.重启nginx即可

    upstream jt {

     

    server 127.0.0.1:8080 weight=6;

    server 127.0.0.1:8090 weight=1 backup;

    server 127.0.0.1:8091 weight=3 down;

    }

    后台项目Linux部署

    3.1 VMware的使用

    3.1.1 使用VMware介绍

    说明:

    VMware是一款虚拟化技术的产品.可以在window的系统中通过没有配置实现Linux系统的运行.

    网卡:

    VMnet1:负责桥接模式的网络配置

    VMnew8:负责nat模式的网络配置

    注意:一般情况下不要随意的修改.

     链接模

  • 相关阅读:
    PowerDesigner 12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键
    支付宝支付开发——当面付条码支付和扫码支付
    C#开发微信门户及应用(41)--基于微信开放平台的扫码登录处理
    ***微信 该连接无法访问问题解决办法
    JQuery 导入导出 Excel
    用PowerDesigner对现有的数据库反向工程建立E-R图
    js 停止事件冒泡 阻止浏览器的默认行为(阻止超连接 #)
    微信网页第三方登录原理
    C# 添加Windows服务,定时任务
    微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置
  • 原文地址:https://www.cnblogs.com/erma0-007/p/8618647.html
Copyright © 2020-2023  润新知