插件窝 干货文章 CentOS6.5环境安装nginx服务器及负载均衡配置的方法

CentOS6.5环境安装nginx服务器及负载均衡配置的方法

Nginx server proxy 951    来源:    2025-04-25

CentOS 6.5 安装 Nginx 及配置负载均衡指南

一、安装 Nginx

由于 CentOS 6.5 默认仓库中没有 Nginx,我们需要添加 EPEL 仓库或从源码编译安装。

方法1:通过 EPEL 仓库安装

  1. 添加 EPEL 仓库:

    rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
    
  2. 安装 Nginx:

    yum install nginx -y
    
  3. 启动 Nginx 并设置开机启动:

    service nginx start
    chkconfig nginx on
    

方法2:源码编译安装(推荐最新版本)

  1. 安装依赖:

    yum install gcc pcre-devel zlib-devel openssl-devel -y
    
  2. 下载并解压 Nginx:

    wget http://nginx.org/download/nginx-1.20.1.tar.gz
    tar -zxvf nginx-1.20.1.tar.gz
    cd nginx-1.20.1
    
  3. 编译安装:

    ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
    make && make install
    
  4. 创建启动脚本:

    vi /etc/init.d/nginx
    

    添加以下内容:

    #!/bin/sh
    # chkconfig: 2345 85 15
    # description: Nginx is a World Wide Web server.
    
    PATH=/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    DAEMON=/usr/local/nginx/sbin/nginx
    NAME=nginx
    DESC=nginx
    
    test -x $DAEMON || exit 0
    
    case "$1" in
     start)
       echo -n "Starting $DESC: "
       $DAEMON
       echo "$NAME."
       ;;
     stop)
       echo -n "Stopping $DESC: "
       $DAEMON -s stop
       echo "$NAME."
       ;;
     restart)
       echo -n "Restarting $DESC: "
       $DAEMON -s reload
       echo "$NAME."
       ;;
     reload)
       echo -n "Reloading $DESC configuration: "
       $DAEMON -s reload
       echo "$NAME."
       ;;
     *)
       echo "Usage: $NAME {start|stop|restart|reload}" >&2
       exit 1
       ;;
    esac
    
    exit 0
    
  5. 设置权限并添加服务:

    chmod +x /etc/init.d/nginx
    chkconfig --add nginx
    chkconfig nginx on
    
  6. 启动 Nginx:

    service nginx start
    

二、配置负载均衡

1. 基本负载均衡配置

编辑 Nginx 配置文件(通常位于 /usr/local/nginx/conf/nginx.conf/etc/nginx/nginx.conf):

http {
    upstream backend {
        server 192.168.1.101:80 weight=5;
        server 192.168.1.102:80;
        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;
        }
    }
}

2. 负载均衡算法

Nginx 支持多种负载均衡算法:

  • 轮询(默认):请求按时间顺序分配到不同服务器
  • 加权轮询:通过 weight 参数指定权重
  • IP哈希:同一客户端IP总是访问同一服务器 nginx upstream backend { ip_hash; server 192.168.1.101:80; server 192.168.1.102:80; }
  • 最少连接:将请求发送到当前连接数最少的服务器 nginx upstream backend { least_conn; server 192.168.1.101:80; server 192.168.1.102:80; }

3. 健康检查

Nginx 提供基本的健康检查功能:

upstream backend {
    server 192.168.1.101:80 max_fails=3 fail_timeout=30s;
    server 192.168.1.102:80 max_fails=3 fail_timeout=30s;
}
  • max_fails:允许失败次数
  • fail_timeout:失败后暂停服务时间

4. 高级配置示例

upstream backend {
    least_conn;
    server 192.168.1.101:80 weight=3;
    server 192.168.1.102:80;
    server 192.168.1.103:80 backup;

    keepalive 32;
}

server {
    listen 80;
    server_name yourdomain.com;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    location / {
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        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_connect_timeout 5s;
        proxy_send_timeout 10s;
        proxy_read_timeout 10s;

        # 缓冲设置
        proxy_buffering on;
        proxy_buffer_size 4k;
        proxy_buffers 8 16k;
    }
}

三、测试与验证

  1. 检查配置文件语法:

    nginx -t
    
  2. 重新加载配置:

    service nginx reload
    
  3. 测试负载均衡:

    • 使用 curl 多次访问服务器,观察响应来自不同后端
    • 使用 netstatss 命令查看连接分布

四、常见问题解决

  1. 无法启动 Nginx

    • 检查端口是否被占用:netstat -tulnp | grep 80
    • 检查错误日志:tail -f /var/log/nginx/error.log
  2. 502 Bad Gateway

    • 检查后端服务器是否正常运行
    • 检查防火墙设置是否允许 Nginx 访问后端服务器
  3. 性能问题

    • 调整 worker_processes 为 CPU 核心数
    • 调整 worker_connections
  4. CentOS 6.5 特定问题

    • 可能需要更新 OpenSSL 和其他基础库
    • 考虑升级到 CentOS 7 或更高版本以获得更好的支持

通过以上步骤,您应该能够在 CentOS 6.5 上成功安装 Nginx 并配置负载均衡功能。如需更高级的功能,可以考虑使用 Nginx Plus 或结合其他工具如 Keepalived 实现高可用。