一、安装及使用Nginx
1编译安装nginx
-
contrib:vim 格式文件,修改nginx配置文件的格式,高亮 cp -r /opt/nginx-1.18.0/contrib/vim/* /usr/share/vim/vimfiles/
-
conf:配置文件
-
man:man帮助 man man/nginx.8 不加路径看不了 nginx.8 文件
-
src:源码包 点c 点h 结尾的文件 find src -type f |xargs cat |wc -l 193678
-
conf:保存nginx所有的配置文件,其中nginx.conf是nginx服务器的最核心最主要的配置文件,其他的.conf则是用来配置nginx相关的功能的,例如fastcgi功能使用的是fastcgi.conf和fastcgi_params两个文件,配置文件一般都有个样板配置文件,是文件名.default结尾,使用的使用将其复制为并将default去掉即可。
-
html目录中保存了nginx服务器的web文件,但是可以更改为其他目录保存web文件,另外还有一个50x的web文件是默认的错误页面提示页面。
-
logs:用来保存nginx服务器的访问日志错误日志等日志,logs目录可以放在其他路径,比如/var/logs/nginx里面。
-
sbin:保存nginx二进制启动脚本,可以接受不同的参数以实现不同的功能
2.启动停止nginx
方法一:
方法二:
停止nginx
3.创建Nginx 自启动文件
复制同一版本的nginx的yum安装生成的service文件
4.平滑升级及信号使用
4.1信号
nginx 命令支持向其发送信号,实现不同功能
nginx 当做单独命令使用有以下选项
[root@node2 ~]#nginx -h
-v : show version and exit
-V : show version and configure options then exit
-t : test configuration and exit
-T : test configuration, dump it and exit
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload
-p prefix : set prefix path (default: /etc/nginx/)
-e filename : set error log file (default: /var/log/nginx/error.log)
-c filename : set configuration file (default: /etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file
4.2显示版本
-小v是显示版本号,-大V可以显示的更多显示编译详细情况 模块等信息
[root@node2 ~]#nginx -v
nginx version: nginx/1.22.1
4.3发送信号
kill -l 看信号大全 看的比较全
nginx -h 中可以看到的信号较少
可以用man 命令来看信号详细信息,没有安装可以去源码包里找到man文件,查看信息
man 路径/nginx.8 不加路径打不开man帮助
stop SIGTERM 直接停止
quit SIGQUIT 优雅的退出:有人在访问不会结束进程
reopen SIGUSR1 分割日志
reload SIGHUP 重新加载配置文件
例子:
nginx -s stop #立即关闭nginx
nginx -s quit #优雅退出 不影响业务的状态下退出
nginx -s reload #重新加载
4.4指定配置 不已配置文件中的为准
nginx -g 指定配置 不已配置文件中的为准
nginx -g 'user zhangsan;' 已张三身份运行,默认是以nginx身份
nginx -g 'daemon off;' 前台运行命令
4.5检查语法格式
nginx -t 可以检查配置文件的语法问题
5.平滑升级
升级 nginx1.18到nginx1.20
原理如图:
-
将旧Nginx文件换成新Nginx文件(注意备份)
-
向master进程发送USR2信号
-
master进程修改pid文件名,加后缀.oldbin
-
master进程用新Nginx文件启动新master进程,系统中将有新旧两个Nginx主进程共同提供Web服务
-
向旧的Nginx服务进程发送WINCH信号,使旧的Nginx worker进程平滑停止,并删除Nginx.pid.oldbin文件
-
向旧master进程发送QUIT信号,关闭老master
-
如果发现升级有问题,可以回滚向老master发送HUP,向新master发送QUIT