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;
    }
}
posted @ 2020-11-02 22:54  alive-dead-man  阅读(110)  评论(0)    收藏  举报