【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级
1.启动nginx的方式:
|
cd /usr/local/nginx ls ./nginx -c nginx.conf |
2.查看nginx的进程方式:
|
[root@localhost nginx]# ps –ef | grep nginx [root@localhost nginx]# ps -ef | grep nginx root 21094 1 0 07:52 ? 00:00:00 nginx: master process ./nginx -c nginx.conf nginx 21095 21094 0 07:52 ? 00:00:00 nginx: worker process root 21270 3019 1 08:05 pts/1 00:00:00 grep nginx |
3.查看Nginx服务主进程的方式:
|
[root@localhost nginx]# cat nginx.pid 21094 这个进程号和上面的进程号是一样的 |
4.Nginx服务可接受的信号
|
信号 |
作用 |
|
TERM或INT |
快速停止Nginx服务 |
|
QUIT |
平缓停止Nginx服务 |
|
HUP |
使用新的配置文件启动进程,之后平缓停止原有进程,也就是所谓的”平滑重启” |
|
USR1 |
重新打开日志文件,常用于日志切割,在相关章节中会对此进一步说明 |
|
USR2 |
使用新版本的Nginx文件启动服务,之后平缓停止原有Nginx进程,也就是所谓的”平滑升级” |
|
WINCH |
平缓停止worker process,用于Nginx服务器平滑升级 |
向nginx服务主进程发送信号也有两种方法。一种是使用nginx二进制文件
另一种方法是使用kill命令发送信号,其使用方法是:
Kill -9 PID
也可以通过发信号的方式:
使用TERM信号
|
[root@localhost nginx]# kill TERM 21094 3019 0 08:16 pts/1 00:00:00 grep nginx |
重启命令
|
[root@localhost nginx]# ./nginx -c nginx.conf [root@localhost nginx]# ps -ef | grep nginx root 21440 1 0 08:18 ? 00:00:00 nginx: master process ./nginx -c nginx.conf nginx 21441 21440 0 08:18 ? 00:00:00 nginx: worker process root 21445 3019 2 08:18 pts/1 00:00:00 grep nginx |
5、使用nginx的帮助的方式
nginx -h
|
[root@localhost nginx]# ./nginx -h nginx version: nginx/1.10.1 Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives] Options: -?,-h : this help -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: /usr/local/nginx/) -c filename : set configuration file (default: /usr/local/nginx/nginx.conf) -g directives : set global directives out of configuration file [root@localhost nginx]# 通过-v 用来显示Nginx服务器的版本号; 通过-V显示版本号,同事显示相关的配置信息 通过-t检查Nginx服务器配置文件是否有语法错误,可以与-c联用,使输出内容更详细,这对查找配置文件中的语法错误很有帮助,如果检查通过,将显示类似下面的信息 [root@localhost nginx]# pwd /usr/local/nginx [root@localhost nginx]# ls client_body_temp fastcgi_params.default koi-win nginx proxy_temp uwsgi_params fastcgi.conf fastcgi_temp logs nginx.conf scgi_params uwsgi_params.default fastcgi.conf.default html mime.types nginx.conf.default scgi_params.default uwsgi_temp fastcgi_params koi-utf mime.types.default nginx.pid scgi_temp win-utf [root@localhost nginx]# ./nginx -t -c nginx.conf nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/nginx.conf test is successful [root@localhost nginx]# 可以执行 [root@localhost nginx]# ./nginx -V nginx version: nginx/1.10.1 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) built with OpenSSL 1.0.1c 10 May 2012 TLS SNI support enabled configure arguments: --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/home/toto/software/nginxdepents/pcre-8.37 --with-zlib=/home/toto/software/nginxdepents/zlib-1.2.8 --with-openssl=/home/toto/software/nginxdepents/openssl-1.0.1c --with-http_stub_status_module --user=nginx --group=nginx [root@localhost nginx]# |
杀死主进程的方式同样可以是:
./nginx SIGNAL nginx.pid
主要最后面一个参数是nginx.pid的路径
6、Nginx服务的重启
关于Nginx平滑重启,平滑重启是这样一个过程,Nginx服务进程接收到信号后,首先读取新的Nginx配置文件,如果配置语法正确,则启动新的Nginx服务,然后平缓关闭旧的服务进程;如果新的Nginx配置有问题,将显示错误,仍然使用旧的Nginx提供服务。
使用以下命令实现Nginx服务的平滑重启
./nginx –g HUP [-c newConfFile]
HUP信号用于发送平滑重启信号。
newConfFile,可选项,用于指定新配置文件的路径
或者,使用新的配置文件代替了旧的配置文件后,使用:
Kill HUP `nginx.pid` (注意最后一个参数连边的引号;引号里面是nginx.pid的路径)
也可以实现平滑重启。
7、Nginx服务器的升级
如果要对当前的Nginx服务器进行版本升级,应用新模块,最简单的办法是停止当前Nginx服务,然后开启新的Nginx服务,但这样就会导致在一段时间内,用户无法访问服务器。为了解决这个问题,Nginx服务器提供平滑升级的功能。
平滑升级的过程是这样的,Nginx服务接收到USR2信号后首先将旧的nginx.pid文件(如果在配置文件中更改过这个文件的名字,也是相同的过程)添加.oldbin,变为nginx.pid.oldbin文件;然后执行新版本Nginx服务器的二进制文件启动服务。如果新的服务启动成功,系统中将由新旧两个Nginx服务公用提供Web服务。如果新的服务启动成功,系统中将有新旧两个Nginx服务共同提供Web服务。之后,需要向旧的Nginx服务进程发送WINCH信号,使旧的Nginx服务平滑停止,并删除nginx.pid.oldbin文件。在发送WINCH信号之前,可以随时停止新的Nginx服务。
注意:
为了实现Nginx服务器的平滑升级,新的服务器安装路径应该和旧的保持一致。因此建议用户在安装新服务器之前先备份旧服务器。如果由于某种原因无法保持新旧服务器安装路径一致,则可以先使用以下命令将旧服务器的安装路径更改为新服务器的安装路径:
./nginx –p newInstallPath
其中,newInstallPath为新服务器的安装路径。之后,备份旧服务器,安装新服务器即可。
做好准备工作以后,使用以下命令实现Nginx服务的平滑升级。
./nginx –g USR2
其中USR2信号用于发送平滑升级信号。或者,使用:
Kill USR2 `nginx.pid` 注意,最后一个参数里面是nginx.pid的路径
通过ps –ef | grep nginx查看新的Nginx服务器启动正常,再使用:
./nginx –g WINCH
其中,WINCH信号用于发送平滑停止旧服务信号。或者,使用:
Kill WIN `nginx.pid`
这样就不停止提供Web服务的前提下完成了Nginx服务器的平滑升级。
【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级的更多相关文章
- 路由其实也可以很简单-------Asp.net WebAPI学习笔记(一) ASP.NET WebApi技术从入门到实战演练 C#面向服务WebService从入门到精通 DataTable与List<T>相互转换
路由其实也可以很简单-------Asp.net WebAPI学习笔记(一) MVC也好,WebAPI也好,据我所知,有部分人是因为复杂的路由,而不想去学的.曾经见过一位程序猿,在他MVC程序中, ...
- [学习笔记] Oracle体系结构、下载安装、创建实例、客户端工具、网络服务名、服务管理
Oracle体系结构 实例: 一个操作系统只有一个 Oracle 数据库 一个 Oracle 数据库可以有多个 Oracle 实例(通常只安装一个实例) 一个实例对应着一系列的后台进程和内存结构 表空 ...
- docker学习笔记1:docke环境的查看
本文的操作是在ubuntu操作系统下的. 一.环境检查 当登录一个安装了docker的机器后,首先我们要检查下docker环境如何. 1.命令:docker -v 上述命令返回安装的docker的版本 ...
- Web 在线文件管理器学习笔记与总结(10)查看文件夹中的内容
① 读取文件夹大小 a. 封装计算文件夹大小的函数 b. 打开文件夹 c. 循环判断文件夹下的内容是文件还是文件夹,如果是文件,则累积相加文件的大小:如果是文件夹,则递归调用该函数 注意两个问题: ...
- Web 在线文件管理器学习笔记与总结(4)查看文件内容
② 查看文件内容 a.通过 file_get_contents($filename) 得到文件内容 b.通过 highlight_string($string) 或者 highlight_file($ ...
- Android(java)学习笔记203:网页源码查看器(Handler消息机制)
1.项目框架图: 2.首先是布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com ...
- linux达人养成计划学习笔记(七)—— 用户登录查看命令
一.查看用户登录信息 1.命令格式 w 2.命令结果 第一行信息是:系统当前时间 系统运行总时间 登录用户数量 一分钟/五分钟/十分钟的系统负载(越大越差) 二.who命令 1 ...
- Android(java)学习笔记146:网页源码查看器(Handler消息机制)
1.项目框架图: 2.首先是布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com ...
- MySQL学习笔记--启动停止服务
右键点击计算机->管理->服务 windows所有的服务都在,mysql等等.可以在这里启动停止服务也可以在命令行 net start/stop <服务名> InnoDB还 ...
随机推荐
- [NOIp 2014]联合权值
Description 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v ...
- hdu 5893 (树链剖分+合并)
List wants to travel Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/O ...
- [BZOJ]1019 汉诺塔(SHOI2008)
找规律成功次数++. Description 汉诺塔由三根柱子(分别用A B C表示)和n个大小互不相同的空心盘子组成.一开始n个盘子都摞在柱子A上,大的在下面,小的在上面,形成了一个塔状的锥形体. ...
- bzoj3675[Apio2014]序列分割 斜率优化dp
3675: [Apio2014]序列分割 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 3508 Solved: 1402[Submit][Stat ...
- 百度杯CTF夺旗大赛9月场writeup
在i春秋上注册了账号,准备业余时间玩玩CTF.其中的九月场已经打完了,但是不妨碍我去做做题,现在将一些思路分享一下. 一. 第二场web SQL 根据题目来看是一个SQL注入的题目: 这里推荐两篇文章 ...
- javascript 手势(swipeLeft,swipeRight)滑动中使用css3动画卡顿,开启硬件加速
今天,在做一个移动端项目,遇到了css3动画卡顿的现象. 例图: 在手势滑动中(swipeLeft,swipeRight)遇到了动画卡顿的现象,最后使用了css3动画-webkit-transform ...
- C++内存机制中内存溢出、内存泄露、内存越界和栈溢出的区别和联系
当我们在用C++做底层驱动的时候,经常会遇到内存不足的警告,究其原因,往往是因为内存出现溢出,泄露或者越界等原因.那么他们之间有什么联系吗? 内存溢出(out of memory) 是指程序在申请内存 ...
- c语言第三次作业。
---恢复内容开始--- (一)改错题 计算f(x)的值:输入实数x,计算并输出下列分段函数f(x)的值,输出时保留1位小数. 源代码 : 第一次编译: 错误原因:if 后面有分号 改正方法:去掉分号 ...
- Cisco 关闭命令同步提示信息
Router(config)#no logging console 如果你通过console连接,使用第一条Router(config)#no logging monitor 如果通过telnet,s ...
- 利用Runtime实现简单的字典转模型
前言 我们都知道,开发中会有这么一个过程,就是将服务器返回的数据转换成我们自己定义的模型对象.当然服务器返回的数据结构有xml类型的,也有json类型的.本文只讨论json格式的. 大家在项目中一般是 ...