Nginx反向代理--负载均衡的配置、Rewrite、服务器配置指令

原文:https://blog.csdn.net/libing1991_/article/details/48059059

Nginx服务器配置指令: 
Rewrite功能,代理功能

Rewrite功能

后端服务器组的配置指令

upstream指令

upstream指令是设置后端服务器组的主要指令

upstream name {...} 

请求按照轮叫调度(Round-Robin, RR)策略顺序选择服务器处理

server

server指令用于设置组内的服务器

server address [params];
  • address:服务器地址,可以包括端口号或者以”unix:”为前缀的进程间通信的Unix Domain Socket
  • params:为当前服务器配置更多属性。 
    weight=number,组内服务器权重,权重高的优先处理请求(采用加权轮询策略) 
    max_fails=number,设置一个请求失败的次数,当对组内服务器请求失败次数超过该变量时,认为该服务器无效(404除外) 
    fail_timeout=time,设置尝试请求某台组内服务器的时间,检查服务器是否有效 
    backup,将服务器标记为备用服务器 
    down,标记服务器永久失效

ip_hash指令

ip_hash指令用于实现会话保持功能,将某个客户端的多次请求定向到组内同一台服务器上,保证客户端与服务器之间建立稳定的会话。 
注:ip_hash指令不能与weight变量一起使用,在整个系统中,Nginx服务器必须处于最前端的服务器,而且客户端地址必须为C类地址

keepalive指令

keepalive指令用于控制网络连接保持功能

keepalive connections;

设置服务器的每一个工作进程允许该服务器组保持的空闲网络连接数的上限值

least_conn指令

least_conn指令用于配置Nginx服务器使用负载均衡策略为网络连接分配服务器组内的服务器,将请求分配给当前网络连接最少的服务器

Rewrite功能的配置指令

Rewrite功能的多种应用

代理功能

Nginx正向代理服务配置指令

resolver指令

resolver指令用于指定DNS服务器的IP地址

resolver address ... [valid=time];
  • address,DNS服务器的IP地址,默认端口35
  • time,设置数据包在网络中的有效时间

resolve_timeout指令

resolve_timeout指令用于设置DNS服务器域名解析超时时间

resolve_timeout time;

proxy_pass指令

proxy_pass指令用于设置代理服务器的协议和地址

proxy_pass URL;

Nginx反向代理服务配置指令

proxy_pass指令

proxy_pass指令用来设置被代理服务器的地址,可以是主机名称、IP地址加端口号形式等

proxy_pass URL;

proxy_hide_header指令

proxy_hide_header指令用于设置Nginx服务器在发送HTTP响应时,隐藏一些头域信息

proxy\_hide_header field

proxy_pass_header指令

proxy_pass_header指令用于设置那些头域信息被发送

proxy\_hide_header field

proxy_pass_header指令

proxy_pass_header指令用于设置那些头域信息被发送

proxy\_hide_header field

Nginx反向代理服务-负载均衡

一般轮询规则的负载均衡

...
upstream backend {
    server 192.168.1.2:80;
    server 192.168.1.3:80;
    server 192.168.1.4:80;
}
server {
    listen 80;
    server_name www.mysite.name;
    index index.html index.htm;
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        ...
    }
    ...
}

加权轮询规则的负载均衡

...
upstream backend {
    server 192.168.1.2:80 weight=5;
    server 192.168.1.3:80 weight=2;
    server 192.168.1.4:80;
}
server {
    listen 80;
    server_name www.mysite.name;
    index index.html index.htm;
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        ...
    }
    ...
}

特定资源的负载均衡

...
upstream videobackend {
    server 192.168.1.2:80;
    server 192.168.1.3:80;
    server 192.168.1.4:80;
}
upstream filebackend {
    server 192.168.1.5:80;
    server 192.168.1.6:80;
    server 192.168.1.7:80;
}
server {
    listen 80;
    server_name www.mysite.name;
    index index.html index.htm;
    location /video/ {
        proxy_pass http://videobackend;
        proxy_set_header Host $host;
        ...
    }
    location /file/ {
        proxy_pass http://filebackend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        ...
    }
    ...
}

对不同域名实现负载均衡

...
upstream bbsbackend{
    server 192.168.1.2:80 weight=2;
    server 192.168.1.3:80 weight=2;
    server 192.168.1.4:80;
}
upstream homebackend {
    server 192.168.1.4:80;
    server 192.168.1.5:80;
    server 192.168.1.6:80;
}
server {
    listen 80;
    server_name home.mysite.name;
    index index.html index.htm;
    location / {
        proxy_pass http://homebackend;
        proxy_set_header Host $host;
        ...
    }
    ...
}

server {
    listen 81;
    server_name bbs.mysite.name;
    index index.html index.htm;
    location / {
        proxy_pass http://bbsbackend;
        proxy_set_header Host $host;
        ...
    }
    ...
}

带有URL重写的负载均衡

...
upstream backend{
    server 192.168.1.2:80;
    server 192.168.1.3:80;
    server 192.168.1.4:80;
}
server {
    listen 80;
    server_name www.mysite.name;
    index index.html index.htm;
    location /file/ {
        rewrite ^(/file/.*)/media/(.*)\.*$ $1/mp3/$2.mp3 last;
    }

    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        ...
    }
}

猜你喜欢

转载自blog.csdn.net/mynamepg/article/details/83348582