共计 2118 个字符,预计需要花费 6 分钟才能阅读完成。
WEB 服务做负载均衡的方法有很多种,但使用 Nginx 做负载均衡部署毫无疑问是非常高效也是非常流行的一种。
本人大多数做.NET 开发,但部署负载却一直用 Nginx,对其他的负载方式研究不多,只测试过一次使用 Server Farm 做负载部署,没有在实际项目中实战,最近见同事使用 Server Farm 做负载配置,但对其性能等不甚了解,望知之者留言讨论。
废话少说,请看步骤:
1、Nginx 服务安装部署
请看上文《Nginx 服务介绍》http://www.linuxidc.com/Linux/2016-03/129423.htm
2、配置文件编写
在 Nginx 安装目录下下打开 Vhost 目录(该目录已经在 Nginx.conf 中被包含, 如果只是针对某站点的某个目录负载,可以将包含路径修改一下即可),新建负载配置文件 testfz.conf,内容如下:
upstream backend
{
server 192.168.1.106:8001 weight=1;
server 192.168.1.107:8001 weight=2;
#ip_hash;
}
server
{
listen 80;
server_name www.test.com;
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_buffering off;
proxy_pass http://wwwbackend;
}
}
3、测试
./nginx –t
返回如下信息表示参数配置无误
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
4、重新加载配置文件
/etc/init.d/nginx reload
如果重启报 PID 错误,在安装路径下 - C 重新加载一下配置文件即可。
5、关于 Nginx 配置的参数说明
a、轮询 每个请求根据 Nginx 配置文件中的顺序,依次分发到不同的后端服务器,服务器如果 down 掉会自动识别并剔除;
b、weight Nginx 根据 weight 配置把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。
c、ip_hash 每个请求按访问 ip 的 hash 结果分配,保证连接到固定的负载服务器上,这种方式可以解决 session 问题;
d、最少连接 可以将 Web 请求会被转发到连接数最少的服务器上。只要加 least_conn 节就可以。
另外这每个负载服务器上还可以做如下的配置:
a、down:当前的服务器暂时不参与负载;
b、max_fails:允许请求失败的次数默认为 1,当超过最大次数时,返回 proxy_next_upstream 模块定义的错误;
c、fail_timeout:max_fails 次失败后,暂停的时间;
d、backup:其它所有非 backup 机器 down 或者忙时候,才开始请求 backup 机器,可以用做故障转移。
更多 Nginx 相关教程见以下内容:
CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm
使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm
搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm
CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm
CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm
CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm
Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-03/129424.htm