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