天天看點

nginx反向代理與負載均衡1 介紹2 靜态資源配置使用3 反向代理單台機器4 反向代理多台機器5 常見的負載均衡算法

1 介紹

nginx幾種常用的用法:

靜态資源存放使用;反向代理單台機器;代理多台機器;

nginx架構基礎配置:

# 主master程序加載配置,啟動了幾個worker程序
worker_processes 4;
events {
# 每個工作線程能進行最大的連接配接數
        worker_connections 1024;
}
http {
        server {
                listen 8888;
        }
        server {
                listen 8889;
        }
        server {
                listen 8890;
        }
        server {
                listen 8891;

                location /images/ {
                        root /usr/local/nginx/images/;
                }
        }
}
           

對于nginx啟動:首先master程序啟動,加載配置監聽相應的4個端口;worker_processes讀取到對應的值4,然後fork 4個worker工作程序,每個監聽的端口都是一個fd,在fork程序的時候fd傳到工作程序。後面主程序就不進行想要了,而是由工作程序想要。

具體流程圖如下:

nginx反向代理與負載均衡1 介紹2 靜态資源配置使用3 反向代理單台機器4 反向代理多台機器5 常見的負載均衡算法

2 靜态資源配置使用

對于一些網站,php代碼,圖檔,視訊等放入指定的位置可以進行通路。具體配置:

worker_processes 4;
events {
        worker_connections 1024;
}
http {
        server {
                listen 8888;
        }
        server {
                listen 8889;
        }
        server {
                listen 8890;
        }
        server {
                listen 8891;
				location / {
                        root /usr/local/nginx/html/;
                }

                location /images/ {
                        root /usr/local/nginx/images/;
                }
        }
}
           

浏覽器通路:

http://120.79.220.143:8891/images/a.png

結果:

nginx反向代理與負載均衡1 介紹2 靜态資源配置使用3 反向代理單台機器4 反向代理多台機器5 常見的負載均衡算法

location指令兩種使用方式:

a:/location/xxxx/bbbb

b:/location?username=xxxx

對應api的兩種通路方式:

a: GET /location/xxxx/bbbb version

b: GET /location?a=xxxx&b=yyyy version

預設api GET /version

3 反向代理單台機器

原理圖:

nginx反向代理與負載均衡1 介紹2 靜态資源配置使用3 反向代理單台機器4 反向代理多台機器5 常見的負載均衡算法

配置:

server {
                listen 8891;

                location /{
                # ip對應要轉發的位址
                        proxy_pass http://120.24.251.73;
                }
        }
           

結果:

nginx反向代理與負載均衡1 介紹2 靜态資源配置使用3 反向代理單台機器4 反向代理多台機器5 常見的負載均衡算法

4 反向代理多台機器

代理結構圖:

nginx反向代理與負載均衡1 介紹2 靜态資源配置使用3 反向代理單台機器4 反向代理多台機器5 常見的負載均衡算法

配置:

主master:

upstream backend {
                server 120.78.203.167;
                server 120.24.251.73;
        }
        server {
                listen 8891;

                location /{
                        proxy_pass http://backend;
                }
        }
           

業務伺服器可以還是原來的配置

結果:http://120.79.220.143:8891/ 通路順序通路對應的代理的業務伺服器

5 常見的負載均衡算法

代理的兩台預設的采用1 輪流政策(upstream預設政策)

當然還有其他的政策: 2 權重重

server 192.168.2.192 weight = 2;

server 192.168.2.193 weight = 99;

3 ip hash 根據ip分(但是公網ip會變動

4 fair算法(nginx三方子產品提供)

5 url_hash算法(三方子產品提供)