Nginx 服务编译安装和升级介绍

2019-01-25 0 By admin

一、Nginx 服务编译准备

Nginx 服务编译过程中,需要使用GCC编译器和makefile文件生成工具;以及各种依赖的软件库。
GCC编译器:GNU Compiler Collection,是GNU社区推出的自由编译器,支持C,C++等;
autoconf和automake工具用于生成makefile。

1.1、依赖包安装

yum -y gcc gcc-c++ ncurses-devel perl-devel openssl-devel pcre-devel
./configure –help 编译帮助

1.2、生成文件存储目录

–prefix Nginx安装的基础目录 /usr/local/nginx
–sbin-path Nginx二进制安装目录 /sbin/nginx
–conf-path= 主配置文件安装位置 /conf/nginx.conf
–error-log-path= 错误日志位置 /logs/error.log
–pid-path= Nginx pid文件路径,可以在配置文件指定 /logs/nginx.pid
–lock-path= 锁文件位置 /logs/nginx.lock
–with-perl_modules_path= Perl模块位置
–with-perl= Perl二进制文件路径
–http-log-path= 访问日志路径,可以在配置文件指定 /logs/access.log.
–http-client-body-temp-path= 存放由客户端请求生成的临时文件路径 /client_body_temp
–http-proxy-temp-path= proxy产生的临时文件路径 /proxy_temp
–http-fastcgi-temp-path= 由HTTP,FastCGI模块产生的临时文件路径 / fastcgi_temp
–http-uwsgi-temp-path= 由HTTP uWSGI模块产生的临时文件路径 /uwsgi_temp
–http-scgi-temp-path= 由HTTP,SCGI模块产生的临时文件路径 /scgi_temp

二、重新编译(增加扩展和升级)

如果需要对现有的Nginx服务升级或者添加新模块时,则需要对Nginx编译处理。

2.1、获取当前 Nginx 的编译参数

#/usr/local/nginx/nginx -V
nginx version: nginx/1.4.7
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC)
TLS SNI support enabled
configure arguments: –prefix=/usr/local/nginx –user=www –group=www –sbin-path=/usr/local/nginx/nginx –conf-path=/usr/local/nginx/nginx.conf –pid-path=/usr/local/nginx/nginx.pid –with-pcre=/usr/local/src/lnmp/pcre-8.33 –with-zlib=/usr/local/src/lnmp/zlib-1.2.8 –with-openssl=/usr/local/src/lnmp/openssl-1.0.1e

继承之前的编译参数,避免Nginx服务因编译参数产生不兼容的问题。

2.2、编译新的 Nginx 服务

进入nginx源码包
# cd /usr/local/src/nginx-1.4.7
# ./configure –prefix=/usr/local/nginx –user=www –group=www –sbin-path=/usr/local/nginx/nginx –conf-path=/usr/local/nginx/nginx.conf –pid-path=/usr/local/nginx/nginx.pid –with-pcre=/usr/local/src/lnmp/pcre-8.33 –with-zlib=/usr/local/src/lnmp/zlib-1.2.8 –with-openssl=/usr/local/src/lnmp/openssl-1.0.1e –with-http_gzip_static_module –with-http_ssl_module

新增–with-http_ssl_module 、–with-http_gzip_static_module 这些模块参数。
Configure执行完成后,只执行make过程,禁止执行make install过程!
# make
执行完后,在源码目录下会有一个objs目录。objs目录下的nginx文件,就是我们需要的Nginx程序了。

2.3、Nginx 服务配置部署

#cp /usr/local/nginx/nginx /usr/local/nginx/nginx.bak
把新的nginx程序覆盖旧的
#cp ./objs/nginx /usr/local/nginx/sbin/nginx
测试新的nginx程序是否正确
# /usr/local/nginx/nginx -t
nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/nginx.conf test is successful

最后重启nginx

2.4、Nginx 服务启动脚本

nginx_run