2、NGINX的安装及配置

nginx下载

Nginx是开源软件,您能够从其官网(http://www.nginx.net/)下载最新版本。nginx

Nginx的编译要求

磁盘空间:须要保证有10M以上的剩余磁盘空间。Nginx安装后会占据4M左右的磁盘空间,实际的磁盘空间需求会由于编译设置和是否安装第三方模块而有所不一样。c++

2.1 安装Nginx服务器所须要的系统资源

GCC编译器及相关工具:GCC全称为GUN Compiler Collection,是GNU社区推出的功能强大、性能优越的用于编程开发的自由编译器,是GNU的表明做品之一,目前能够编译的语言包括:C、C++、Objective-C、Fortran、Java等。您必须确保您的操做系统安装有GCC编译器。另外,您还需安装Autoconf和Automake工具,他们用于自动建立功能完善的Makefile,当前大多数软件包都是用这一工具生成Makefile的,nginx也不例外。web

在CentOS系统下,您可使用yum命令安装GCC编译器及相关工具:编程

Yum –y install gcc gcc-c++ autoconf automake

模块依赖性

Nginx的一些模块须要其余第三方库的支持,例如gzip模块须要zlib库,rewrite模块须要pcre库,ssl功能须要openssl库等。一样,若是是在CentOS系统下,咱们可使用yum命令安装或下载源码包编译安装这些模块依赖的库:windows

Yum –y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

2.2  Nginx的安装

Nginx从0.7.52版本开始有了官方的Windows版本,因此这里分别介绍Nginx在Windows下和Linux下的安装步骤。bash

2.2.1   nginx在windows环境下的安装

Nginx在windows下的安装比较简单,将下载下来的Nginx-0.XXX.XX.zip文件解压缩到一个不包含空格的路径中,例如:D:\nginx,而后在“开始”-“运行”-“cmd”中执行如下DOS命令便可启动nginx:服务器

D:

cd d:\nginx

start nginx

若是要对启动的Nginx进程进行控制,可使用DOS命令:工具

nginx –s [stop | quit | reopen |reload]

2.2.2  nginx在Linux/Unix环境下的安装

Nginx在Linux环境下能够经过编译源码的方式来安装,最简单的安装命令以下:性能

gunzip nginx-0.x.xx.tar.gz
tar –cvf nginx-0.x.xx.tar.
(UNIX系统使用tar –xf nginx-0.x.xx.tar)
cd nginx-0.x.xx
./configure
make
sudo make install

按照以上命令,nginx将被默认安装到/usr/local/nginx目录下。您能够经过./configure –help查看nginx可选择的编译选项。ui

使用如下命令自定义编译选项:

./configure
--prefix=/usr  \
--sbin-path=/usr/sbin/nginx  \
……

2.3 Nginx的启动、中止、平滑重启

2.3.1 nginx的启动

     启动Nginx,能够执行如下命令。假设Nginx安装在/usr/local/nginx/目录中,那么启动nginx的命令就是:

/usr/local/nginx/sbin/ -c /usr/local/nginx/conf/nginx.conf

参数“-c”指定了配置文件得路径,若是不加“-c”参数,nginx会默认加载其安装目录的conf子目录中的nginx.conf文件,在本例中即:/usr/local/nginx/sbin/nginx/conf/nginx.conf

2.3.2  nginx的中止

nginx的中止方法有不少种,通常经过发送系统信号给nginx主进程的方式来中止nginx。咱们能够经过ps命令来查找nginx的主进程号:

ps –ef | grep nginx

主进程的标志“master process”,子进程的标志:“worker process”

2.3.3 nginx的平滑重启

若是在nginx.conf配置文件中指定了pid文件存放的路径(例如:pid /usr/local/webserver/nginx/logs/nginx.pid),该文件中存放的就是nginx当前的主进程号。若是没有指定pid文件存放路径,nginx.pid文件默认存放在nginx安装目录的logs目录下。因此,咱们能够直接经过如下命令来完成平滑重启,省下寻找nginx主进程号的步骤:

kill –信号类型 ‘/usr/local/webserver/nginx/logs/nginx.pid’

信号类型:

TERM:快速关闭;
Quit 从容关闭;
HUP 平滑重启,从新加载配置文件;
USR1:从新打开日志文件,在切割日志时用途较大
USR2:平滑升级可执行程序
WINCH:从容关闭工做进程

2.4 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)一段时间后,旧的工做进程处理了全部已链接的请求后退出,仅由新的工做进程来处理输入的请求了。

(6)这时候,咱们能够决定是使用新版本,仍是恢复到旧版本:

kill –HUP 旧的主进程号:nginx将在不重载配置文件的状况下启动它的工做进程

Kill –QUIT 新的主进程号:从容关闭其工做进程

kill –TERM 新的主进程号:强制退出

kill 新的主进程号或旧的主进程号:若是由于某些缘由新的工做进程不能退出,则向其发送kill信号

新的主进程退出后,旧的主进程会移除.oldbin前缀,恢复它的.pid文件,这样,一切就都恢复到升级以前了。若是尝试升级成功,而你也但愿保留新的服务器时,可发送QUIT信号给旧的主进程,使其退出而只留下新的服务器运行。

相关文章
相关标签/搜索