nginx 负载均衡配置基本配置
nginx负载均衡配置,主要包含两部分,一部分是对监听器(server模块)的配置,另一部分是对后端server池(upstream模块)的配置。
1、nginx单server配置
准备3个后端server
例:192.168.100.204 为负载均衡server
192.168.100.203和192.168.100.220为后端server
打开192.168.100.204的nginx.conf,文件位置在nginx安装目录的conf目录下。
在http段加入以下代码
http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
//负载服务器池 负载均衡有5中策略,默认为“轮询“策略。常见的还有“权重”,“ip_hash”等。
upstream server_pool {
server 192.168.100.203:8080;
server 192.168.100.220:8080;
}
//访问负载均衡server时,请求会根据配置的策略分散发到upstream内配置的server上
server {
listen 80; //监听端口,默认为80端口。
server_name localhost;
location / {
proxy_pass http://server_pool; //访问转移到哪个upstream,http://对应upstream的名称
proxy_set_header Host $host; //重新设置请求头为要转发的后端server的端口号
proxy_set_header X-Real-IP $remote_addr; //$remote_addr的值为客户端的ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; //CDN的ip和客户端的ip
root html;
index index.html index.htm;
}
}
}
配置完成后启动nginx,访问负载均衡server(192.168.100.204:80) 如果根据策略访问配置的后端server(192.168.100.203:8080 和 192.168.100.220:8080)的html页面,则配置成功
2、nginx支持多server配置
upstream www_server_pool1 {
server 192.168.100.203;
}
upstream www_server_pool2 {
server 192.168.100.220;
}
server { //虚拟主机1
listen 192.168.100.204:803;
server_name _;
location / {
proxy_pass http://www_server_pool1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server { //虚拟主机2
listen 10.10.10.189:801;
server_name _;
location / {
proxy_pass http://www_server_pool2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}