计算机网络/计算机科学与应用/系统/运维/开发

Nginx命令行及演示

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


nginx

日子是崭新的,不要回头看,如果今年还掉眼泪,希望是喜极而泣。

评论

^