负载均衡

nginx 实现反向代理和负载均衡

1.        安装
1)         从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx(目前最新版本是1.11.6版本)安装包;可任意选取版本
2)         解压后复制到部署目录。

2.        启动和停止Nginx
Nginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。
1)         启动Nginx:start nginx
2)         停止Nginx:nginx -s stop
3)         修改配置后重启:nginx -s reload
这三个命令可分别做成bat文件,放在部署目录下,方便后续操作。
start nginx.bat文件内容:start nginx
stop nginx.bat文件内容:nginx -s stop
reload nginx.bat文件内容:nginx -s reload

3.        反向代理配置
修改部署目录下conf子目录的nginx.conf文件(如nginx-1.5.13conf ginx.conf)内容,可调整相关配置。
反向代理配置示例:
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#禁用缓存
proxy_buffering off;

#设置反向代理的地址
proxy_pass http://192.168.1.1;
}
代理地址根据实际情况修改。

4.        负载均衡配置
nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

负载均衡配置示例:
upstream backend {
#ip_hash;

server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
}

server {
listen       80;
server_name  trffweb;

location / {

#反向代理的地址
proxy_pass http://backend;
}
}

Upstream命名和服务器地址根据实际情况修改。

5.        完整配置示例
nginx.conf:

worker_processes  1;
events {
worker_connections  1024;
}

http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;
keepalive_timeout  65;

upstream backend {
#ip_hash;
server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
}

server {
listen       80;
server_name  2;

location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#禁用缓存
proxy_buffering off;

#反向代理的地址
proxy_pass http://backend;
}
}

}

原文地址:https://www.cnblogs.com/xiaotaoing/p/6687396.html