Nginx命令行格式:
nginx -s reload
参数:
帮助 -h 使用指定配置文件 -c 指定配置指令 -g 指定运行目录 -p 发送信号 -s (立刻停止stop 优雅停止服务 quit 重载配置文件 reload 重新开始记录日志文件 reopen) 测试配置文件是否有语法错误 -t -T 打印nginx的版本信息、编译信息等 -v -V
注意:以上命令 在nginx 二进制目录sbin目录下执行
热部署:升级Nginx
准备一个新的版本nginx
1、准备一个新的Nginx版本
# wget http://nginx.org/download/nginx-1.17.10.tar.gz
2、解压nginx
# tar xvf nginx-1.17.10.tar.gz
3、编译
# ./configure
4、安装
# make
5、进入到原先nginx目录下
# cd objs/
6、备份旧的nginx二进制文件
# /usr/local/nginx/sbin 下 # cp nginx nginx.old
7、将刚才新版本的编译后的二进制复制到旧版本二级制目录下
回到刚才新的nginx二级制目录下:
objs# cp -r nginx /usr/local/nginx/sbin/ -f
8、平滑升级 kill -USER2 旧版本的主进程号
# ps -ef | grep nginx # kill -USR2 旧版本的主进程号
9、kill -WINCH 旧版本的主进程号 (关闭旧版本的worker进程)
可以看到现在有2个master,2个worker旧版本的worker被关闭
master process 进程还存在,不会自动退出,保存在这里,方便后面做版本回退
10、现在查看nginx版本:
# ./nginx -V
参考资料:
https://blog.csdn.net/meltsnow/article/details/90085035
nginx 配置启动后无法访问的几个解决办法:
1、查看服务器运营商的安全组是否开启端口80
2、关闭防火墙
查看防火墙状态 systemctl status firewalld.service 可以关闭: systemctl stop firewalld.servie
3、如果需要开启防火墙,那么检查80端口
[root@iZ2zea4u8pasyhtllbo54oZ sbin]# firewall-cmd --query-port=80/tcpno
添加80端口:
[root@iZ2zea4u8pasyhtllbo54oZ sbin]# firewall-cmd --zone=public --add-port=80/tcp --permanentsuccess
4、启动nginx报错
[root@iZ2zea4u8pasyhtllbo54oZ sbin]# ./nginx nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
解决方法:先查看端口被占用的进程
$ netstat -ntlp $ kill 进程号
最后查看nginx是否启动成功
$ ps -ef | grep nginx