nginx的配置文件详解(nginx的平滑升级,添加动态模块,重定向,防盗链)

本文详细介绍了nginx的平滑升级过程,包括配置文件的高亮和升级策略。同时,讲解了如何限制并发数、限速、控制连接速率以及动态模块编译。此外,还探讨了利用expires进行缓存优化,设置http到https的重定向,防止盗链的策略以及日志管理,确保nginx服务的安全和高效运行。
摘要由CSDN通过智能技术生成

一般在实际生产环境中,nginx服务是不能随便重启或者reload,所以nginx的升级不能直接用reload来重新更新nginx的配置,而是需要发送信号来平滑升级

1.nginx的平滑升级

需要两个版本的nginx

[root@base1 ~]# ls
nginx-1.14.2.tar.gz
nginx-1.15.8.tar.gz
[root@base1 ~]# tar zxf nginx-1.14.2.tar.gz 
[root@base1 ~]# yum install -y gcc pcre-devel zlib-devel   # 这是编译nginx的依赖包
[root@base1 ~]# cd nginx-1.14.2
[root@base1 nginx-1.14.2]# vim auto/cc/gcc   # 关闭debug日志
171 # debug
172 # CFLAGS="$CFLAGS -g"
[root@base1 nginx-1.14.2]# ./configure --prefix=/usr/local/nginx  # 开始编译
[root@base1 nginx-1.14.2]# make && make install 
[root@base1 sbin]#  /usr/local/nginx/sbin/nginx 
[root@base1 nginx-1.14.2]# cd /usr/local/nginx/
[root@base1 nginx]# cd sbin/
[root@base1 sbin]# ls
nginx
[root@base1 sbin]# vim ../conf/nginx.conf
  3 worker_processes  auto;        # 设置高并发配置参数为动态
[root@base1 sbin]# /usr/local/nginx/sbin/nginx -s reload
# 给配置文件添加高亮
[root@base1 sbin]# cd
[root@base1 ~]# mkdir .vim
[root@base1 ~]# cp -r  nginx-1.14.2/contrib/vim/*  ~/.vim
[root@base1 ~]# vim /usr/local/nginx/conf/nginx.conf  # 此时再次查看配置文件就会有颜色,方便我们排错
# 开始平滑升级
[root@base1 ~]# ls
nginx-1.14.2  nginx-1.14.2.tar.gz  nginx-1.15.8.tar.gz
[root@base1 ~]# tar zxf nginx-1.15.8.tar.gz
[root@base1 ~]# cd nginx-1.15.8
[root@base1 nginx-1.15.8]# vim auto/cc/gcc 
171 # debug
172 # CFLAGS="$CFLAGS -g"
[root@base1 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx/  # 必须和旧版本的nginx在相同的目录
[root@base1 nginx-1.15.8]# make   # 第二次不能make install,会覆盖原来的nginx,即所有的nginx配置都不会生效
[root@base1 nginx-1.15.8]# ls
auto     CHANGES.ru  configure  html     Makefile  objs    src
CHANGES  conf        contrib    LICENSE  man       README
[root@base1 nginx-1.15.8]# ll objs/

在这里插入图片描述

[root@base1 nginx-1.15.8]# cd /usr/local/nginx/sbin/
[root@base1 sbin]# ls
nginx
[root@base1 sbin]# cp nginx nginx.old   # 备份旧版本的nginx,防止新版本的nginx出问题
[root@base1 sbin]# cd 
[root@base1 ~]# cd nginx-1.15.8/objs/
[root@base1 objs]# cp nginx /usr/local/nginx/sbin/
[root@base1 objs]# ps -ef | grep nginx

在这里插入图片描述

[root@base1 objs]# kill -USR2 7175  # 发送信号告诉系统要升级,7175 是旧版本nginx的进程号
[root@base1 objs]# ps -ef | grep nginx  # 查看,发现新版本的nginx已经启动

在这里插入图片描述

[root@base1 objs]# ps -ef | grep nginx
[root@base1 objs]# kill -WINCH  7175   # 停止旧的nginx,只会停止掉旧的nginx的worker
[root@base1 objs]# ps -ef | grep nginx

在这里插入图片描述

[root@base1 objs]# /usr/local/nginx/sbin/nginx -v

在这里插入图片描述

[root@base1 objs]# cd /usr/local/nginx/sbin/
[root@base1 sbin]# ll /usr/local/nginx/sbin/

在这里插入图片描述

# 当我们发现新版本的nginx有问题时,可以还原
[root@base1 sbin]# cp nginx.old nginx -f
[root@base1 sbin]# kill -HUP 7175  # 告诉系统要重新拉回旧的nginx,相当于reload
[root@base1 sbin]# ps -ef | grep nginx

在这里插入图片描述

[root@base1 sbin]# kill -USR2 7179
[root@base1 sbin]# kill -WINCH 7179  # 停止新的nginx,只会停止掉新的nginx的worker
[root@base1 sbin]# ps -ef | grep nginx

在这里插入图片描述

[root@base1 sbin]# /usr/local/nginx/sbin/nginx -v

在这里插入图片描述

2.编写nginx二进制脚本
[root@base1 sbin]# cd
[root@base1 ~]# yum install -y httpd
[root@base1 ~]# cd /usr/lib/systemd/system
[root@base1 system]# cp httpd.service  /etc/systemd/system/nginx.service
[root@base1 system]# vim /etc/systemd/system/nginx.service
  [Unit]
  Description=The nginx HTTP Server
  After=network.target remote-fs.target nss-lookup.target
  
  [Service]
  Type=forking
  PIDfile=/usr/local/nginx/logs/nginx.pid
  ExecStart=/usr/local/nginx/sbin/nginx
  ExecReload=/usr/local
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值