nginx
nginx
编译安装
# 安装依赖
yum install pcre pcre-devel openssl openssl-devel zlib zlib-devel -y
# 创建用户
useradd -s /sbin/nologin nginx -M
# 编译
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/nginx.pid \
--with-pcre \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gzip_static_module \
--with-http_stub_status_module
make && make install
# 配置systemd
# vi /usr/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
echo 'export PATH=$PATH:/usr/local/nginx/sbin' >>/etc/profile && source /etc/profile
添加 nginx_upstream_check_module
https://www.cnblogs.com/dance-walter/p/12212607.html
1.已经安装nginx
下载解压到 /opt nginx_upstream_check_module-master.zip
cd /usr/local/nginx-1.16.1/
查看所有模块
/usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.16.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --pid-path=/usr/local/nginx/nginx.pid --with-pcre --with-http_ssl_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_stub_status_module
打补丁(对应nginx版本)
[root@server01 /usr/local/nginx-1.16.1]# patch -p1 < /opt/nginx_upstream_check_module-master/check_1.16.1+.patch
patching file src/http/modules/ngx_http_upstream_hash_module.c
patching file src/http/modules/ngx_http_upstream_ip_hash_module.c
patching file src/http/modules/ngx_http_upstream_least_conn_module.c
patching file src/http/ngx_http_upstream_round_robin.c
patching file src/http/ngx_http_upstream_round_robin.h
# 编译
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/nginx.pid \
--with-pcre \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--add-module=/opt/nginx_upstream_check_module-master
# 不用install
make
# 备份替换重启
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp objs/nginx /usr/local/nginx/sbin/
kill -USER2 `cat /usr/local/nginx/logs/nginx.pid`
#热升级nginx,之前的文章有讲过,如果当前nginx不是用绝对路径下的nginx命令启动的话,热升级无效。
只能`nginx -s stop`&& /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf`
4层代理配置
1.需要编译模块 --with-stream
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/nginx.pid \
--with-pcre \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--add-module=/opt/nginx_upstream_check_module-master \
--with-stream
2.不需要install
3.备份后复制重启
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
cp objs/nginx /usr/local/nginx/sbin/
systemctl restart nginx
nginx -t
4.代理配置
stream {
upstream redis {
server 10.0.0.11:6379 max_fails=3 fail_timeout=30s;
server 10.0.0.12:6379 max_fails=3 fail_timeout=30s;
server 10.0.0.13:6379 max_fails=3 fail_timeout=30s;
}
server {
listen 6378;
proxy_connect_timeout 2s;
proxy_timeout 900s;
proxy_pass redis;
}
}
浙公网安备 33010602011771号