Nginx要实现七层负载均衡需要用到proxy_pass代理模块配置。Nginx默认安装支持这个模块,我们不需要再做任何处理。Nginx的负载均衡是在Nginx的反向代理基础上把用户的请求根据指定的算法分发到一组【upstream虚拟服务池】。

Nginx七层负载均衡的指令

upstream指令

该指令是用来定义一组服务器,它们可以是监听不同端口的服务器,并且也可以是同时监听TCP和Unix socket的服务器。服务器可以指定不同的权重,默认为1。

语法

upstream name {…}

默认值

位置

http

server指令

该指令用来指定后端服务器的名称和一些参数,可以使用域名、IP、端口或者unix socket

语法

server name [paramerters]

默认值

位置

upstream

Nginx七层负载均衡的实现流程

Nginx七层负载均衡_服务器

服务端设置

server { 
listen 9001;
server_name localhost;
default_type text/html;
location /{
return 200 '<h1>192.168.1.100:9001</h1>';
}
}
server {
listen 9002;
server_name localhost;
default_type text/html;
location /{
return 200 '<h1>192.168.1.100:9002</h1>';
}
}
server {
listen 9003;
server_name localhost;
default_type text/html;
location /{
return 200 '<h1>192.168.1.100:9003</h1>';
}
}

负载均衡器设置

upstream backend{ 
server 192.168.1.100:9091;
server 192.168.1.100:9092;
server 192.168.1.100:9093;
}
server {
listen 8083;
server_name localhost;
location /{
proxy_pass http://backend;
}
}