nginx 的编译安装

在装nginx 之钱确保gcc、OpenSSL、pcre、pcre-devel 的安装

rpm -aq  gcc  OpenSSL  pcre  zlib-devel


环境准备

yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y


安装nginx 时的磁盘目录的规划

1>nginx 源码的存放路径

nginx 的源码文件,以及第三方模块源代码,便于以后nginx 的追加编译以及管理

2>nginx 编译阶段产生的中间件文件目录

该目录用于放置在configure 命令执行后所生成的源文件以及目录configure 命令会将该目录命名为objs,并放在nginx源代码目录下

3>部署目录

该目录是nginx 实际运行时,服务器所需要的二进制文件和配置文件等,

4>日志文件存放目录

合理分配日文文件存放目录,例如debug,access,error 日志,便于分析解决问题。



1.tar zxf ngx_cache_purge-1.4.tar.gz


2.tar zxf pcre-8.12.tar.gz

cd pcre-8.12

./configure

make && make install

cd ..


3.tar zxf nginx-1.0.6.tar.gz

cd nginx-1.0.6

./configure --user=www --group=www --add-module=../ngx_cache_purge-1.4 --prefix=/usr/local/nginx  --with-http_stub_status_module --with-http_ssl_module --with-pcre=../pcre-8.12

make ; make install

-------------------------------------------------------------------------------------------------------------------------------

                                                       nginx 的启停


本项目的nginx 的安装位置

/usr/local/nginx/

检查nginx 配置文件的拼写

/usr/local/nginx/sbin/nginx -t

显示nginx  的版本

/usr/local/nginx/sbin/nginx  -v



启动

/usr/local/nginx/sbin/nginx


检查nginx 配置文件是否有错误

/usr/local/nginx/sbin/nginx -ct, "-t" 检查nginx 服务器配置文件是否有语法错误,可以和-c 连用,使的内容更加的详细,利于对

文件的修改。



平滑重启

kill  -HUP  `cat  /usr/local/nginx/logs/nginx.pid`



kill 来关闭进程

kill  -xxx pid

其中,xxx 就是信号名,pid 是nginx 的进程号,可以通过如下获得

ps -ef |grep "nginx: master process"|grep -v ''grep"|awk -F ' ' '{print $2}' 等同于cat  /usr/local/nginx/logs/nginx.pid


-xxx

QUIT,表示处理完进程请求后,关闭进程

TERM/TNT,用于快速停止。

HUP,表示重新加载配置,也就是关闭原有的进程,并开启新的工作进程

USER1 ,用于nginx 的日志切换,也就是重新打开一个日志文件

USER2 ,用于平滑升级可执行程序。



nginx -g 来停止nginx 服务

./sbin/nginx -g TERM|TNT|QUIT  其中,TERM 和TNT 信号用于快速停止,quit 用于平缓停止

---------------------------------------------------------------------------------------

nginx 模块的追加编译安装


4.nginx 的模块的追加编译

找到安装nginx的源码根目录,如果没有的话下载新的源码


http://nginx.org


tar xvzf nginx-1.3.2.tar.gz


查看ngixn版本极其编译参数


/usr/local/nginx/sbin/nginx -V


进入nginx源码目录


cd nginx-1.3.2


以下是重新编译的代码和模块


./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module


make 千万别make install,否则就覆盖安装了


make完之后在objs目录下就多了个nginx,这个就是新版本的程序了


备份旧的nginx程序


cp /usr/local/nginx/sbin/nginx/usr/local/nginx/sbin/nginx.bak


把新的nginx程序覆盖旧的


cp objs/nginx /usr/local/nginx/sbin/nginx


测试新的nginx程序是否正确


/usr/local/nginx/sbin/nginx -t


nginx: theconfiguration file /usr/local/nginx/conf/nginx.conf syntax is ok


nginx:configuration file /usr/local/nginx/conf/nginx.conf test issuccessful


平滑重启nginx


/usr/local/nginx/sbin/nginx -s reload


查看ngixn版本极其编译参数


/usr/local/nginx/sbin/nginx -V


以下是重新编译的代码:


./configure --prefix=/usr/local/nginx --with-google_perftools_module --user=www --group=www --with-http_stub_status_module --with-http_gzip_static_module --with-openssl=/usr/ --with-pcre=/mydata/soft/pcre-8.31