LINUX测试环境部署nginx(五)
安装配置nginx
- 安装编译环境:yum -y install pcre-devel openssl openssl-devel
- 拷贝nginx压缩文件到目标目录后,解压tar -zxvf nginx1.4.4.tar.gz
- 设置编译参数:./configure --prefix=/usr/local/nginx --with-http_stub_status_module (/usr/local/nginx目录下运行)
- 编译:make
- 安装:make install
- 启动cd /usr/local/nginx/sbin/
./nginx
centos下安装nginx (yum安装)
编译Nginx的要求如下:
磁盘空间:需要保证有10MB以上的剩余磁盘空间。Nginx安装完毕后会占据4MB左右的磁盘空间,实际的磁盘空间需求会因编译设置和是否安装第三方模块而有所不同。
GCC编译器及相关工具:GCC全称为GNU Compiler Collection, 是GNU社区推出的功能强大、性能优越的用于编程开发的自由编译器,是GNU的代表作品之一,目前可以编译的语言包括:C、C++、Objective-C、Fortran、Java等。您必须确保您的操作系统安装有GCC编译器。
另外,您还必须安装Autoconf和Automake工具,它们用于自动创建功能完善的Makefile,当前大多数软件包都是用这一工具生成Makefile的,Nginx也不例外。在CentOS系统下,您可以使用yum命令安装GCC编译器及相关工具:
yum -y install gcc gcc-c++ autoconf
automake
模块依赖性:Nginx的一些模块需要其他第三方库的支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库等。同样,如果是在CentOS系统下,我们可以使用yum命令安装或下载源码包编译安装这些模块依赖的库:
yum -y install zlib zlib-devel openssl
openssl--devel pcre pcre-devel
Nginx在Linux环境下可以通过编译源码的方式来安装,最简单的安装命令如下:
tar
zxvf nginx-版本号.tar.gz
cd nginx-版本号
./configure
make
make install
按照以上命令,Nginx将被默认安装到/usr/local/nginx目录下。您可以通过/configure --help命令查看Nginx可选择的编译选项。
编译选项举例如下:
--prefix=<path>
Nginx安装路径。如果没有指定,默认为/usr/local/nginx
--sbin-path=<path> Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx
--conf-path=<path> 在没有给定 –c 选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf
--pid-path=<path> 在nginx.conf中没有指定pid指令的情况下,默认的Nginx.pid的路径。如果没有指定,默认为<prerix>/logs/nginx.pid
等等
Nginx的启动,停止,平滑重启
启动Nginx
启动Nginx,可以执行以下命令。假设Nginx安装在/usr/locaUnginx/目录中,那么启动Nginx的命令就是:
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
参数“-c”指定了配置文件的路径,如果不加“-c”参数,Nginx会默认加载其安装目录的conf子目录中的nginx.conf文件
Nginx的停止
Nginx的停止方法有很多种,一般通过发送系统信号给Nginx主进程的方式来停止Nginx。
我们可以通过ps命令来查找Nginx的主进程号:
ps –ef | grep nginx
从图中可以看到,1个Nginx进程的备注信息为“master process”,表示它为主进程,另外的1个进程备注信息为“worker process”,表示它们为子进程。32244为主进程号。
如果在nginx.conf配置文件中指定了pid文件存放的路径(例如:/usr/local/webserver/nginx/logs/nginx.pid;),该文件中存放的就是Nginx当前的主进程号。如果没有指定pid文件存放的路径,nginx.pid文件默认存放在Nginx安装目录的logs目录下。所以,我们也可以直接通过以下命令来完成,省下寻找Nginx主进程号的步骤:
kill -信号类型
`/usr/local/webserver/nginx/logs/nginx.pid`
(1)从容停止Nginx。
kill - QUIT Nginx主进程号 或者 kill -QUIT
`/usr/local/webserver/nginx/logs/nginx.pid`
(2)快速停止Nginx
kill - TERM Nginx主进程号 或者 kill -TERM
`/usr/local/webserver/nginx/logs/nginx.pid`
kill
- INT Nginx主进程号 或者 kill -INT
`/usr/local/webserver/nginx/logs/nginx.pid`
(3)强制停止所有Nginx进程
pkill
–9
nginx
Nginx的平滑重启
如果改变了Nginx的配置文件(nginx conf),想重启Nginx,同样可以通过发送系统信号给Nginx主进程的方式来进行。不过,重启之前,要确认Nginx配置文件(nginx.conf)的语法是正确的,否则Nginx将不会加载新的配置文件。通过以下命令可以判断Nginx配置文件是否正确:
/usr/local/webserver/nginx/sbin/nginx –t -c
/usr/local/webserver/nginx/conf/nginx.conf
如果配置文件不正确,屏幕将会提示配置文件的第几行出错:
[emerg]:unknown directive”abc“in /usr/local/webserver/nginx/conf/nginx.conf:55
configuration file
/usr/local/webserver/nginx/conf/nginx.conf test failed
如果配置文件正确,屏幕将提示以下两行信息:
the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax
is OK
configuration file /usr/local/webserver/nginx/conf/nginx.conf test is
successful
这时候,就可以平滑重启Nginx了。
kill -HUP Nginx主进程号
kill一HUP `/usr/local/webserver/nginx/logs/nginx.pid`
当Nginx接收到HUP信号时,它会尝试先解析配置文件,如果成功,就应用新的配置文件(例如,重新打开日志文件或监听的套接字)。之后,Nginx运行新的工作进程并从容关闭旧的工作进程。通知工作进程关闭监听套接字,但是继续为当前连接的客户提供服务。所有客户端的服务完成后,旧的工作进程被关闭。如果新的配置文件应用失败,Nginx将继续使用旧的配置进行工作。
Nginx支持以下几种信号类型:
·TERM,INT快速关闭;
·QUIT从容关闭;
·HUP平滑重启,重新加载配置文件;
·USR1重新打开日志文件,在切割日志时用途较大;
·USR2平滑升级可执行程序;
·WINCH从容关闭工作进程。
Nginx的平滑升级
当需要将正在运行中的Nginx升级、添加,删除服务器模块时,可以在不中断服务的情况下,使用新版本、重编译的Nginx可执行程序替换旧版本的可执行程序。步骤如下:
(1)使用新的可执行程序替换旧的可执行程序,对于编译安装的Nginx,可以将新版本编译安装到旧版本的Nginx安装路径中。替换之前,您最好备份一下旧的可执行文件。
(2)发送以下指令:
kill –USR2 旧版本的nginx主进程号
(3)旧版本Nginx的主进程将重命名它的.pid文件为.oldbin(例如:/usr/local/webserver/nginx/logs/nginx.pid.oldbin),然后执行新版本的Nginx可执行程序,依次启动新的主进程和新的工作进程。
(4)此时,新、旧版本的Nginx实例会同时运行,共同处理输入的请求。要逐步停止旧版本的Nginx实例,你必须发送WINCH信号给旧的主进程,然后,它的工作进程就将开始从容关闭:
kill -WINCH 旧版本的Nginx主进程号
(5) 一段时间后,旧的工作进程(worker process)处理了所有已连接的请求后退出,仅由新的工作进程来处理输入的请求了:
(6)这时候,我们可以决定是使用新版本,还是恢复到旧版本:
kill –HUP 旧的主进程号:Nginx将在不重载配置文件的情况下启动它的工作进程;
kill –QUIT 新的主进程号:从容关闭其工作进程(worker
process);
kill –TERM 新的主进程号:强制退出;
kill 新的主进程号或旧的主进程号:如果因为某些原因新的工作进程不能退出,则向其发送kill信号。
新的主进程退出后,旧的主进程会移除.oldbin前缀,恢复为它的.pid文件,这样,一切就都恢复到升级之前了。如果尝试升级成功,而你也希望保留新的服务器时,可发送QUIT信号给旧的主进程,使其退出而只留下新的服务器运行:
LINUX测试环境部署nginx(五)的更多相关文章
- (转)LINUX测试环境部署Redis(四)
安装配置Redis 第一部分:安装redis 希望将redis安装到此目录 1 /usr/local/redis 希望将安装包下载到此目录 1 /usr/local/src 那么安装过程指令如下: ...
- LINUX测试环境部署manggo(六)
安装配置manggo 复制安装包mongodb-linux-x86_64-2.6.5.tgz到/usr/local/目录下,或者如果有网络可以直接使用wget命令下载安装包到/usr/local目录下 ...
- LINUX测试环境部署mysql(三)
安装配置mysql 1.安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yum list mysql* 安 ...
- Linux测试环境部署tomcat(二)
安装配置tomcat 1:在http://tomcat.apache.org/download-80.cgi下载最新安装包 2:安装tomcat 将apache-tomcat-8.0.21.tar.g ...
- Linux测试环境部署jdk(一)
安装配置JDK yum install -y lrzsz 安装rz,方便xshell上传下载文件 Jdk: jdk-6u1-linux-i586 Tomcat: apache-tomcat-7.0. ...
- Linux测试环境搭建的学习建议
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...
- Linux测试环境简单使用教程
0. 本blog 简单说明一下 Linux测试环境尤其是 CentOS测试环境的开发测试使用, 教程可能不会很长, 主要是入门. 0.1 Linux简介: Linux 的历史基本上不用阐述, linu ...
- Hadoop 学习笔记 (八) hadoop2.2.0 测试环境部署 及两种启动方式
1基本流程步骤1:准备硬件(linux操作系统)步骤2:准备软件安装包,并安装基础软件(主要是JDK)步骤3:修改配置文件步骤4:分发hadoop步骤5:启动服务步骤6:验证是否启动成功!2硬件配置要 ...
- linux服务器环境部署(三、docker部署nginx)
一.下载nginx镜像 官网地址:https://hub.docker.com/_/nginx #下载镜像 默认为最新版本 docker pull nginx#下载指定版本 docker pull n ...
随机推荐
- 存储过程详解与java调用(转)
存储过程的一些基本语法: --------------创建存储过程----------------- CREATE PROC [ EDURE ] procedure_name [ ; number ] ...
- 可滑动的ExpandableListView
可以向左滑动的扩展列表 向左滑动源码是参照GitHub上的里的 ListView的思路写出来的,按照他的思路,由于本人水平有限,只写了关键代码,能够完美运行,adapter改变之后能自动收回. 滑出状 ...
- STM32系列单片机IO口模式设置
STM32单片机的每组IO口都有4个32位配置寄存器用于配置GPIOx_MODER, GPIOx_OTYPER, GPIOx_OSPEEDR和GPIOx_PUPDR,2个32位数据寄存器用于配置输入和 ...
- 如何解决Selenium中"Cannot find function addEventListener in object [object HTMLDocument]"的错误
project: blog target: how-to-resolve-cannot-find-function-addEventListener-error-in-selenium.md stat ...
- 堆排序C++实现
/* * heapsort.cpp * * Created on: 2016年3月30日 * Author: Lv_Lang */ //堆排序 #include <iostream> us ...
- Github上有趣的资料 | JS
留着,以后用得着,原文地址:http://www.jianshu.com/p/7c9aa9508641 collection AlloyImage 基于HTML5的专业级图像处理开源引擎.An ima ...
- 有关attribute和property,以及各自对select中option的影响
这个问题老生常谈,但是直到现在我依旧时常会把它搞混.下面列一些各自的特性. attribute property 设置方法 option.setAttribute('selected', true ...
- 没有为扩展名.htm注册的生成提供程序,没有为扩展名.html注册的生成提供程序
在web.config中添加下面这段 代码如下 <buildProviders> <add extension=".html" type="System ...
- 注意linux下面的命令行,要将PATH声明出来
export PATH=/apps/svr/maven/bin:/apps/svr/jdk7/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/s ...
- canvas转盘抽奖
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" ...