wellknow 发表于 2023-5-23 17:31:14

Nginx启动,重启以及基本命令

1.启动nginx
进入nginx安装目录执行

./sbin/nginx -c ./conf/nginx.conf
2.验证nginx配置文件是否正确

方法1. 进入nginx安装目录sbin下,输入命令

./nginx -t
回显test is successful说明配置正确

方法2. 在启动nginx命令 -c 前加 -t

./sbin/nginx -t -c ./conf/nginx.conf
3.停止nginx
方法1:

强制停止:

./sbin/nginx -s stop
处理完请求后停止:

./sbin/nginx -s quit
方法2:

ps -ef|grep nginx
找到对应的nginx进程号

正常停止:

kill -15 进程号
强制停止:

kill -9 进程号
4.重启新加载nginx配置文件
方法1. 进入nginx安装目录执行

./sbin/nginx -s reload
5.重启nginx服务
方法1. 进入nginx安装目录执行

./sbin/nginx -s reopen
方法2.查找当前nginx的PID进程号,并kill

ps -ef|grep nginx
找到对应的nginx进程号,进行

kill -HUP 进程号


kill -1 进程号
实现重启nginx服务

6.查看nginx版本信息
1).只显示版本信息

进入nginx安装目录执行

./sbin/nginx -v
2)显示版本信息和配置信息

进入nginx安装目录执行

./sbin/nginx -v

wellknow 发表于 2023-5-23 17:32:35

#启动
#1.直接启动
#进入nginx目录,执行启动命令
cd /usr/local/nginx/sbin
./nginx
# 或者直接
/usr/local/nginx/sbin/nginx
#2.指定配置文件方式启动
#进入nginx目录,执行启动命令
cd /usr/local/nginx/sbin
./nginx -c /usr/local/nginx/conf/nginx.conf
#或者
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

wellknow 发表于 2023-5-23 17:33:07

检查ngnix配置文件

#进入nginx目录
cd /usr/local/nginx/sbin
#检查配置文件是否有语法操作
./nginx -t
# 或者显示指定配置文件
./nginx -t -c /usr/local/nginx/conf/nginx.conf

wellknow 发表于 2023-5-23 17:33:51

平滑的重启,修改配置后,重新加载配置

#进入nginx目录
cd /usr/local/nginx/sbin
#执行重载命令
./nginx -s reload

nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制。
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件

Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
Nginx启动新的worker进程,采用新的配置文件
Nginx将新的请求分配新的worker进程
Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
重复上面过程,知道全部旧的worker进程都被关闭掉。
所以,重启之后,master的进程号不变,worker的进程号会改变。

wellknow 发表于 2023-5-23 17:34:10

关闭nginx

#进入nginx目录
cd /usr/local/nginx/sbin
# 快速停止nginx
./nginx -s stop
# 完整有序的停止nginx,这个命令会等待所有请求结束后再关闭nginx
./nginx -s quit

wellknow 发表于 2023-5-23 17:34:32

reopen重新打开日志文件

#进入nginx目录
cd /usr/local/nginx/sbin
# 重新打开日志文件
./nginx -s reopen

wellknow 发表于 2023-5-23 17:34:53

当需要切割 nginx 日志文件时,我们需要用到 nginx -s reopen 命令,用来完成新日志的生成。
当日志文件太大时,一般我们是按天切割文件,也就是按天做个分类,每天的日志放在一个文件中,并用日期命令,方便日后查找。
但时我们简单的把文件移动并重新命令是无法及时生效的,因为在 linux 下的文件句柄,文件在被打开的情况下 mv 移走文件,操作这个文件的进程还是有这个文件的信息,原进程还是读写原来的文件,简单的 mv 无法生效也就无法完成我们想要的文件分隔。
一般我们需要两步:

移走文件并重命名
利用 nginx 的 reopen 功能,完成新日志文件的生成。
参考地址,感谢博主分享

wellknow 发表于 2023-5-23 17:35:39

其他命令重启、关闭nginx

# 查看进程号,下图master的为主进程号
ps -ef | grep nginx
#从容停止Nginx
kill -QUIT 主进程号
#快速停止Nginx
kill -TERM 主进程号
#强制停止Nginx
pkill -9 nginx
#平滑重启nginx:
kill -HUP 主进程号

wellknow 发表于 2023-5-23 17:36:23

Windows下Nginx的启动、停止等命令

1、启动:

C:\server\nginx-1.0.2>start nginx



C:\server\nginx-1.0.2>nginx.exe

注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。

如果需要特殊设置nginx的配置文件路径,可以这样执行start nginx -c conf/nginx.conf

2、停止:

C:\server\nginx-1.0.2>nginx.exe -s stop



C:\server\nginx-1.0.2>nginx.exe -s quit

注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。

执行 nginx.exe -s stop或者quit命令是不是不能删除进程?查看进程开了一堆nignx.exe

还有80端口在Listening,并且浏览器F5刷新还能访问页面,可能nginx.exe版本或系统的原因,用

taskkill /f /im nginx.exe > null 杀死nginx进程

3、重新载入Nginx:

C:\server\nginx-1.0.2>nginx.exe -s reload

当配置信息修改,需要重新载入这些配置时使用此命令。

4、重新打开日志文件:

C:\server\nginx-1.0.2>nginx.exe -s reopen

5、查看Nginx版本:

C:\server\nginx-1.0.2>nginx -v

nginx: nginx version: nginx/1.0.2



C:\server\nginx-1.0.2>nginx -V

nginx: nginx version: nginx/1.0.2

nginx: TLS SNI support enabled

nginx: configure arguments: --builddir=objs.msvc8 --crossbuild=win32 --with-debug --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs.msvc8/lib/pcre-7.9 --with-zlib=objs.msvc8/lib/zlib-1.2.3 --with-select_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_stub_status_module --with-http_flv_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-mail --with-ipv6 --with-openssl=objs.msvc8/lib/openssl-0.9.8r --with-openssl-opt=enable-tlsext --with-http_ssl_module --with-mail_ssl_module

注:v只是简单显示版本信息,V不但显示版本信息,还显示配置参数信息。


6、测试或载入指定配置文件:

注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:

C:\server\nginx-1.0.2>nginx.exe -t -c conf/default.conf

nginx: the configuration file C:\server\nginx-1.0.2/conf/default.conf syntax isok

nginx: configuration file C:\server\nginx-1.0.2/conf/default.conf test is successful

载入指定配置文件

C:\server\nginx-1.0.2>start nginx.exe -c conf/default.conf

wellknow 发表于 2023-5-23 17:38:36

注意不要直接双击nginx.exe,这样会导致修改配置后重启、停止nginx无效,需要手动关闭任务管理器内的所有nginx进程
在nginx.exe目录,打开命令行工具,用命令 启动/关闭/重启nginx
start nginx : 启动nginx
nginx -s reload:修改配置后重新加载生效
nginx -s reopen:重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
       关闭nginx:
nginx -s stop:快速停止nginx
nginx -s quit:完整有序的停止nginx
如果遇到报错:
bash: nginx: command not found
有可能是你再linux命令行环境下运行了windows命令,
如果你之前是允许 nginx -s reload报错, 试下 ./nginx -s reload
或者 用windows系统自带命令行工具运行
页: [1]
查看完整版本: Nginx启动,重启以及基本命令