一、Nginx编译的要求有下以三点:
   a.磁盘空间:需要保证有10MB以上的剩余磁盘空间。Nginx安装完毕后占据4MB左右的磁盘空间,实际的磁盘空间需求会因编译和安装第三方模块而有所不同。
   b.GCC编译及相关工具:必须确保操作系统安装有GCC编译器,必须安装Autoconf和Automake工具,它们用于自动创建功能完善的Makefile,当前大多数软件包都是用这一工具生成Makefile的。
   c.模块依赖性:Nginx的一些模块需要其他第三方库的支持。
二、Nginx的安装
  1、安装编译环境
yum -y install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl openssl-devel pcre             pcre-devel
  2、安装Nginx软件
tar zxvf nginx-1.0.11.tar.gz
cd nginx-1.0.11
./configure
make
make install
Nginx将被默认安装到/usr/local/nginx目录下
  3、Nginx的启动与停止
Nginx启动的命令
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
Nginx的停止
ps -ef | grep nginx
Nginx进程的备注信息为“master process”,表示它为主进程
           备注信息为“worker process”,表示它为子进程
a.从容停止Nginx
kill -quit Nginx主进程号
kill -quit `/usr/local/nginx/logs/nginx.pid`
b.快速停止Nginx
kill -term Nginx主进程号
kill -term `/usr/local/nginx/logs/nginx.pid`
kill -int Nginx主进程号
kill -int `/usr/local/nginx/logs/nginx.pid`
c.强制停止所有Nginx进程
pkill -9 nginx
d.平滑重启Nginx
kill -hup Nginx主进程号
判断Nginx配置文件是否正确
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
三、Nginx的平滑升级
   当需要装正在运行中的Nginx升级,添加、删除服务模块时,可以在不中断服务的情况下,使用新版本,重新编译的Nginx可执行程序替换旧版本的可执行程序步骤如下:
1、使用新的可执行程序替换旧的可执行程序,对于编译安装的Nginx,可以将新版本编译安装到旧版本的Nginx安装路径中,替换之前最好备份一下旧的可执行文件
2、发送以下指令
kill -USR2 旧版本的Nginx主进程号
3、旧版本Nginx的主进程将重命名它的.pid文件为.oldbin然后执行新版本的Nginx可执行程序,依次启动新的主进程和新的工作进程
4、此时新旧版本的Nginx实例会同时运行,共同处理输入的请求,要逐步停止旧版本的Nginx的实例你必须发送WINCH信号给旧的主进程,然后它的工作进程就将会从容关闭:
kill -winch 旧版本的Nginx主进程号
5、一段时间后,旧的工作进程处理完所有的连接请求后退出,仅由新的工作进程来处理输入的请求
具体操作步骤:
1、查看旧版本Nginx的主进程号
[root@Mserver nginx-1.0.11]# ps -ef | grep nginx
2、编译安装新版本
tar xvf nginx-1.0.14.tar.gz
cd nginx-1.0.14
./configure
make
make install
[root@Mserver local]# kill -usr2 27121
[root@Mserver local]# ls /usr/local/nginx/logs/
[root@Mserver nginx-1.0.14]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx-1.0.14/conf/nginx.conf
这时可能出现一些地址在用报的错
[root@Mserver nginx-1.0.14]# ps -ef | grep nginx
#查看新旧版本的主子进程
[root@Mserver nginx-1.0.14]# kill -whinch 27121
#查看旧版本的请求连接是否完成停止
#停止旧版本的主进程
[root@Mserver nginx-1.0.14]# kill -9 27121
#查看是新版本的进程
[root@Mserver nginx-1.0.14]# ps -ef | grep nginx
此时升级完成