Nginx 反向代理和负载均衡

反向代理

  个人理解:反向代理的实际功能就是将监听到的指定端口和请求服务名,再通过location root 进行替换转向。

  另一种说明:当浏览器发送请求时,nginx内部映射到具体的文件夹下.给用户予以响应.这样的方式成为反向代理。

    

server {
        #监听端口
        listen       80;
        server_name  image.jt.com;
        #转向路径
        location / {
            root D:\jtphoto;
        }
    }

说明:客户端发起了http://image.jt.com/images/.......请求,由Nginx监听到image.jt.com后并设置了location root为D://jtphoto时Nginx就会将 D://jtphoto 直接替换image.jt.com ,并会自动拼接路径,从而根据路径访问到指定的服务器。

负载均衡

当客户端发起多个请求时最终只会访问一台终端服务器,若有多台服务器时通过Nginx将请求进行分发转向到不同的服务器进行请求处理。

实现负载均衡有三种方式:

  1.轮询方式:(Nginx默认方式)

    对多台服务器进行循环访问。

    如有A、B、C三台服务器这时Nginx会将发来的请求进行分发,比如第一个请求先分发给A,再来一个请求分发给B,再来一个请求分发给C ... 如此循环分发下去,从而降低降每台服务器的访问压力到达均衡。

  2.权重方式:(对服务器配置weight 值)

    对多台服务器进行权重划分。意思就是将多台服务器进行主次访问顺序,将性能好的服务器设置成主要服务器,其它服务器为辅。

    weight 的值越高的服务器则被访问的几率就越高。

  upstream  jt{
        server  127.0.0.1:8091 weight=7;
        server  127.0.0.1:8092 weight=3;
        server  127.0.0.1:8093 down;
    }

  3.IPhash:

    根据不同人的访问IP进行服务器分配,Session黏着问题.

Nginx.conf配置反向代理和负载均衡:

 1 http {
 2     include       mime.types;
 3     default_type  application/octet-stream;
 4 
 5     server {
 6         #监听端口
 7         listen       80;
 8         server_name  localhost;
 9         
10         #转向路径
11         location / {
12             #默认访问路径
13             root   html;
14             index  index.html index.htm;
15         }
16 
17         error_page   500 502 503 504  /50x.html;
18         location = /50x.html {
19             root   html;
20         }
21 
22         
23     }
24 
25 
26     #配置多台Tomcat服务器,默认采用轮询方式 
27     #weight 的值为分配权重值(即访问的概率值)down:表示停用当前服务器
28     upstream  jt{
29         server  127.0.0.1:8091 weight=7;
30         server  127.0.0.1:8092 weight=3;
31         server  127.0.0.1:8093 down;
32     
33     }
34     
35     
36     #配置图片服务器
37     server {
38         #监听端口
39         listen       80;
40         server_name  image.jt.com;
41         
42         #防止host请求头丢失
43         proxy_set_header X-Forwarded-Host $host;
44         proxy_set_header X-Forwarded-Server $host;
45         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
46         
47         #转向路径
48         location / {
49             root D:\jtphoto;
50         }
51     }
52     
53     #配置后台访问路径  
54     server {
55         #监听端口
56         listen       80;
57         server_name  manage.jt.com;
58         
59         #防止host请求头丢失
60         proxy_set_header X-Forwarded-Host $host;
61         proxy_set_header X-Forwarded-Server $host;
62         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
63         
64         #转向路径
65         location / {
66             #jt代表负载均衡的名称
67              proxy_pass   http://jt;
68         }
69     }
70     
71 
72 }
原文地址:https://www.cnblogs.com/tongxuping/p/7248445.html