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

Posted 小黑妹007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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模式的网络配置

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

 

 链接模

以上是关于nginx反向代理负载均衡(轮询权重IPHash)的主要内容,如果未能解决你的问题,请参考以下文章

Nginx配置

nginx反向代理和负载均衡的实现

Nginx 反向代理 负载均衡

nginx负载均衡

nginx负载均衡

Nginx反向代理和负载均衡部署指南