跳转至

部署 Nginx 集群

1 准备工作

1.1 服务器准备

这里选择 Nginx 实现服务的负载均衡,如有 F5 或其他公有云的 SLB 服务,可略过该部分内容。
此处在 MySQL 集群节点上进行 Nginx 的安装,节点规划:

  • Nginx-1 节点,IP 为 10.1.11.187
  • Nginx-2 节点,IP 为 10.1.11.189

其他信息:

  • DataEase-1 节点,IP 为 10.1.11.5
  • DataEase-2 节点,IP 为 10.1.11.84

1.2 软件准备

可以在 Nginx 官网下载对应的安装包,此处下载的是 nginx-1.21.6.tar.gz。

# 下载 Nginx 安装包
wget http://nginx.org/download/nginx-1.21.6.tar.gz

1.3 防火墙

Nginx 默认通过 80 端口通信,需要打开防火墙的 80 端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

2 Nginx 安装

分别登录到两个节点上,执行以下命令进行 Nginx 的安装:

# 安装依赖
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

# 解压 Nginx 到 /opt 目录下
tar zxvf nginx-1.21.6.tar.gz -C /opt

# 配置安装 Nginx
cd /opt/nginx-1.21.6
./configure --user=nobody --group=nobody --prefix=/usr/local/nginx --with-http_gzip_static_module --with-http_ssl_module --with-stream
make && make install

3 添加 Nginx 服务

在两个节点上添加 Nginx 系统服务:

cat <<EOF >> /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

启动 Nginx 服务,并设置为开机自启动:

systemctl start nginx
systemctl enable nginx

4 配置 Nginx

修改 /usr/local/nginx/conf/nginx.conf 文件,加上 include /usr/local/nginx/conf.d/*.conf;

Nginx-配置

创建配置文件目录 /usr/local/nginx/conf.d,并进入到该目录下:

mkdir -p /usr/local/nginx/conf.d && cd $_

创建配置文件 de.conf。

提示: 以下配置可根据用户环境的实际情况进行调整

upstream 10.1.11.137{
    ip_hash;
    server 10.1.11.5:80 fail_timeout=100s max_fails=10;
    server 10.1.11.84:80 fail_timeout=100s max_fails=10;
}
server {
    listen 80;
    client_max_body_size 50m;
    location / {
        proxy_pass http://10.1.11.137;
        add_header X-Upstream $upstream_addr;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_next_upstream error timeout http_404 http_500 http_502 http_503;
    }
}

5 重启 Nginx 服务

执行命令重启两个节点上的 Nginx 服务:

systemctl restart nginx

Nginx-状态