NGINX之安装篇

今天开始我们一步一步在一个纯净系统搭建一个NGINX运行环境并进行相关配置.


环境搭建:        
首先要有一个LINUX环境,这里我们使用金山网游服务器普遍使用的linux版本CentOS. CentOS是基于RedHat Enterprise Linux源代码重新编译并去除RedHat徽标的产物。CentOS完全免费,但其开发团队不提供技术支持,也不负任何商业责任。


LINUX系统安装完后,我们必须确保系统安装有GCC编译器和Autoconf和Automake工具,用于我们对NGINX源码进行重新编译安装。在CentOS下, 你可以使用如下命令安装GCC及相关工具:

yum -y install gcc gcc-c++ antoconf automake


除以上两个工具外,NGINX的一些模块需要依赖其他第三方库的支持,例如gzip模块需要zlib库,rewrite需要pcre库,ssl功能需要ipenssl库等。同样,如果是在CentOS下,我们可以使用yum命令下载并安装相应库:
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

NGINX相关文件下载地址为 http://nginx.org/,你可以选择相应的版本进行下载安装,这里我们使用稳定版1.0.10,相应下载地址为:http://nginx.org/download/nginx-1.0.10.tar.gz


从0.7.52版本开始,NGINX就已经有WINDOWS版本,此处我们只讨论LINUX环境下的安装与配置,WINDOWS下安装比较简单,如需WINDOWS下运行的用户可参考其他资料进行安装与配置。
tar -zxvf nginx-1.0.10.tar.gz
cd nginx-1.0.10
./configure
make
sudo make install

通过以上命令,NGINX将被默认安装到。/usr/local/nginx目录下,你可以通过./configure -help 查看linux下可选择的编译选项。此处不做描述。
NGINX的启动,停止与重启


NGINX启动、停止与重启可以通过发送系统信号给NGINX主进程的方式来进行,具体如下:
NGINX启动:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
-c参数指定了nginx启动加载的配置文件路径,当然这里可以不加此参数,默认启动nginx主目录下conf/nginx.conf


NGINX停止:kill - 信号类型 '/usr/local/nginx/logs/nginx.pid'
(1)从容停止NGINX
        kill - QUIT NGINX主进程号

        或 kill -QUIT '/usr/local/nginx/logs/logs/nginx.pid'


(2)快速停止NGINX

        kill - INT NGINX主进程号
        或 kill -TERM /usr/local/nginx/logs/nginx.pid

        kill - INT NGINX主进程号
        或 kill -TERM /usr/local/nginx/logs/nginx.pid

(3)强制停止NGINX进程

        kill -9 nginx 


(4)NGINX平滑重启
        kill -HUP NGINX主进程号
        或 kill -HUP '/usr/local/nginx/logs/nginx.pid'


NGINX的信号控制:
        TERM, INT 快速关闭
        QUIT 从容关闭
        HUP 从容重启
        USR1 重新打开日志文件,在切割日志时用途较大
        USR2 平滑升级可执行程序
        WINCH 从容关闭工作进程


NGINX的平滑升级


我们可以采用同样的方式通过发送系统信号给NGINX主进程,来对正在运行中的NGINX升级、添加、删除服务器模块等,可以在不中断服务的情况下使用新版本,重新编译新版本的NGINX替换旧版本的可执行程序,具体步骤如下:
(1)使用新的可执行替换旧的可执行程序,替换之前,最好备份一下就版本的可执行程序,以便替换过程中如有问题及时回滚。
(2)发送系统信号给NGINX主进程
        kill -USR2 旧版本的NGINX主进程号
(3)旧版本的NGINX主进程将重命名它的pid文件为*.oldbin(/usr/local/nginx/logs/nginx.pid.oldbin),然后执行新版本的NGINX程序,一次启动新的主进程和新的工作进程。
(4)此时,新旧版本的NGINX进程会同时运行,共同处理输入的请求,要逐步停止旧版本的NGINX实例,必须发送系统信号给旧的主进程,如下:
        kill -WINCH 旧的NGINX主进程号
(5)一段时间后,旧的工作进程(worker process)处理了已链接的所有请求后从容退出,仅有新的新的工作进程来处理输入请求。
(6)这时候,我们就可以决定是使用新版本,还是恢复到旧版本。


我的博客: http://blog.youkuaiyun.com/sunguangran
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值