由于 CentOS 6.5 官方仓库中没有 Nginx,我们需要添加 EPEL 仓库或从源码编译安装。这里推荐使用 EPEL 仓库方式。
安装 EPEL 仓库:
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
安装 Nginx:
yum install nginx -y
启动 Nginx 并设置开机启动:
service nginx start
chkconfig nginx on
如果需要特定版本的 Nginx,可以选择源码安装:
安装依赖:
yum install gcc pcre-devel zlib-devel openssl-devel -y
下载并解压 Nginx:
wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
编译安装:
./configure --prefix=/usr/local/nginx
make && make install
启动 Nginx:
/usr/local/nginx/sbin/nginx
编辑 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf
或 /usr/local/nginx/conf/nginx.conf
):
http {
upstream backend {
server 192.168.1.101:80 weight=5; # 后端服务器1,权重5
server 192.168.1.102:80; # 后端服务器2,默认权重1
server 192.168.1.103:80 backup; # 备用服务器
}
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
Nginx 支持多种负载均衡算法:
轮询(默认):请求按时间顺序分配到不同的后端服务器
upstream backend {
server 192.168.1.101;
server 192.168.1.102;
}
加权轮询:根据权重分配请求
upstream backend {
server 192.168.1.101 weight=3;
server 192.168.1.102 weight=1;
}
IP哈希:同一客户端IP总是访问同一后端服务器
upstream backend {
ip_hash;
server 192.168.1.101;
server 192.168.1.102;
}
最少连接:优先分配给连接数最少的服务器
upstream backend {
least_conn;
server 192.168.1.101;
server 192.168.1.102;
}
Nginx 默认有简单的健康检查机制,可以通过 max_fails
和 fail_timeout
参数配置:
upstream backend {
server 192.168.1.101 max_fails=3 fail_timeout=30s;
server 192.168.1.102 max_fails=3 fail_timeout=30s;
}
service nginx start
或 /usr/local/nginx/sbin/nginx
service nginx stop
或 /usr/local/nginx/sbin/nginx -s stop
service nginx reload
或 /usr/local/nginx/sbin/nginx -s reload
nginx -t
如果启用了防火墙,需要开放80端口:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
完成以上步骤后,您的 Nginx 负载均衡服务器应该可以正常工作。可以通过访问 Nginx 服务器 IP 来测试负载均衡效果。