随着网站的业务量增加,简单的网站架构已经不能支撑网站的流量了,所以需要搭建一个高性能的网站架构,实现高性能网站架构的方法就是nginx的负载均衡,负载均衡可以将用户的访问根据设置好的权重来分配到后端真实的服务器中,后端真实服务器可以分担用户请求,从而提升网站性能。在这里介绍nginx用负载均衡实现高可用网站架构
1.首先安装nginx,安装nginx的步骤在此省略
需要强调的一点是,如果网站有用户登录的功能,做负载均衡的时候需要做会话保存,不然用户第一次登录在一台服务器上,刷新一下页面,又给分配到另一台服务器了。
1.1 下面是会话保存的配置介绍
会话保存有两种方式:
1.1.1会话保存方式一:nginx自带的ip_hash方式
这种方式简单,但是缺点是:
1)后端服务器宕机后,session会丢失
2)来自同一局域网的客户端会被转发到同一个后端服务器,可能导致负载失衡
3)不适用CDN网络,不适用于前段还有代理的情况
nginx配置方式:
upstream WebServer {
ip_hash;
server 192.168.32.68:8088 weight=5;
server 192.168.32.67:8088 weight=4;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send "HEAD / HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}
1.1.2会话保存方式二:nginx的第三方模块儿(sticky)
下载并安装nginx的第三方模块儿,建议安装nginx的时候就安装上所需要的模块儿,
cd /usr/local/src/
wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
tar -zxvf master.tar.gz
mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42 nginx-sticky
cd nginx-1.14 #nginx的安装包目录
./configure --add-module=nginx-sticky #sticky的目录位置
make && make install
nginx -V查看nginx加载的模块儿
nginx配置方式:
upstream WebServer {
sticky;
server 192.168.32.68:8088 weight=5;
server 192.168.32.67:8088 weight=4;
}
2.nginx负载均衡配置示例:
upstream WebServer {
sticky;
server 192.168.32.68:8080 weight=30;
server 192.168.32.67:8080 weight=20;
}
server {
listen 80;
server_name example.com;
index index.php;
access_log off;
error_log /var/log/nginx/example_load/example.error.log;
location / {
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_pass http://WebServer;
}
}
3.后端服务器配置:
后端真实服务器按照正常nginx部署网站方式部署即可。