更新系统
yum update -y
安装nginx到非root用户目录下
yum update
yum install -y wget nc curl telnet gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
useradd test
su - test
wget http://nginx.org/download/nginx-1.19.6.tar.gz
tar -zxvf nginx-1.19.6.tar.gz
mkdir nginx_home
cd nginx-1.19.6
./configure --with-http_dav_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-stream --with-http_sub_module --with-http_auth_request_module --with-http_stub_status_module --with-http_realip_module --prefix=/home/test/nginx_home
make
make install
添加nginx环境变量方便操作
# 追加环境变量配置
echo 'export PATH=$PATH:/home/test/nginx_home/sbin' >> ~/.bashrc
source ~/.bashrc
启动nginx
# 启动nginx
nginx
# 修改配置文件后,重启nginx
nginx -s reload
# 测试配置文件格式是否正确
nginx -t
# 停止nginx
nginx -s stop
添加自启脚本
# User和Group必须指定 否则开机自启后,root用户可以启停,而普通用户无权限启停
cat <<EOF > /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
User=test
Group=test
Type=forking
ExecStart=/home/test/nginx_home/sbin/nginx
ExecReload=/home/test/nginx_home/sbin/nginx -s reload
ExecStop=/home/test/nginx_home/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl enable nginx.service
systemctl status nginx.service
允许test用户监听1024以下端口
setcap cap_net_bind_service=+eip /home/test/nginx_home/sbin/nginx
添加健康检查模块
nginx开源版本并不支持健康检查并移除不健康的节点,这里通过开源的patch来处理
# user root
yum install patch -y
# user test
su - test
# 同时支持 stream 和 http 的upstream健康检查
git clone https://github.com/zhouchangxun/ngx_healthcheck_module.git
# 仅支持http的健康检查
git clone https://github.com/yaoweibin/nginx_upstream_check_module.git
cd nginx-1.19.6
patch -p1 < /home/test/ngx_healthcheck_module/nginx_healthcheck_for_nginx_1.16+.patch
./configure --with-http_dav_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-stream --with-http_sub_module --with-http_auth_request_module --with-http_stub_status_module --with-http_realip_module --prefix=/home/test/nginx_home --add-module=/home/test/ngx_healthcheck_module
make
make install
root快速部署
yum update
mkdir /root/soft && cd /root/soft
yum install -y wget nc curl telnet
wget http://nginx.org/download/nginx-1.19.6.tar.gz
tar -zxvf nginx-1.19.6.tar.gz
cd nginx-1.19.6
yum install -y gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
./configure --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-stream --with-http_sub_module
make
make install
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx