Nginx源码安装

       Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

现在我们开始安装,本文采用源码安装。

Ububtu需要安装如下包:

apt-get install build-essential
apt-get install libtool

RHEL、Centos 需要安装如下包:

安装make:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

需要先装pcre, zlib,pcre为了重写rewrite,zlib为了gzip压缩
1.选定源码目录
可以是任何目录,本文选定的是/usr/local/src

cd /usr/local/src

2.安装PCRE库

ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包:
cd /usr/local/src
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz 
tar -zxvf pcre-8.37.tar.gz
cd pcre-8.37
./configure
make
make install

3.安装zlib库

http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包:
cd /usr/local/src
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make
make install

4.安装ssl(如果没有安装的话)

cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz

5.安装nginx

cd /usr/local/src
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0

./configure --sbin-path=/usr/local/nginx/nginx \
--conf-path=/usr/local/nginx/nginx.conf \
--pid-path=/usr/local/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.37 \
--with-zlib=/usr/local/src/zlib-1.2.8 \
--with-openssl=/usr/local/src/openssl-1.0.1c


Configuration summary 配置结果如下:
 + using PCRE library: /usr/local/src/pcre-8.37
 + using OpenSSL library: /usr/local/src/openssl-1.0.1c
 + md5: using OpenSSL library
 + sha1: using OpenSSL library
 + using zlib library: /usr/local/src/zlib-1.2.8

 nginx path prefix: "/usr/local/nginx"
 nginx binary file: "/usr/local/nginx/nginx"
 nginx configuration prefix: "/usr/local/nginx"
 nginx configuration file: "/usr/local/nginx/nginx.conf"
 nginx pid file: "/usr/local/nginx/nginx.pid"
 nginx error log file: "/usr/local/nginx/logs/error.log"
 nginx http access log file: "/usr/local/nginx/logs/access.log"
 nginx http client request body temporary files: "client_body_temp"
 nginx http proxy temporary files: "proxy_temp"
 nginx http fastcgi temporary files: "fastcgi_temp"
 nginx http uwsgi temporary files: "uwsgi_temp"
 nginx http scgi temporary files: "scgi_temp"

make
make install

6.启动

[root@localhost~]# vi /etc/init.d/nginx
#!/bin/bash
# chkconfig: 3459920
# description: Nginx servicecontrol script
PROG="/usr/local/nginx/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case"$1"in
start)
$PROG
echo "Nginx servicestart success."
;;
stop)
kill -s QUIT $(cat $PIDF)
echo "Nginx service stopsuccess."
;;
restart)
$0stop
$0start
;;
reload)
kill -s HUP $(cat $PIDF)
echo"reload Nginx configsuccess."
;;
*)
echo "Usage: $0{start|stop|restart|reload}"
exit 1
esac

附录:
编译时参数 供参考使用
configure决定系统的特性,以及nginx可以用来处理连接的某些特性和方法,最后它将创建Makefile。
configure支持以下选项:
–prefix= – 安装路径,如果没有指定,默认为/usr/local/nginx。
–sbin-path= – nginx可执行命令的文件,如果没有指定,默认为/sbin/nginx。
–conf-path= – 在没有使用-c参数指定的情况下nginx.conf的默认位置,如果没有指定,默认为/conf/nginx.conf。
–pid-path= – nginx.pid的路径,如果没有在nginx.conf中通过“pid”指令指定,默认为/logs/nginx.pid。
–lock-path= – nginx.lock文件路径,如果没有指定,默认为/logs/nginx.lock。
–error-log-path= – 当没有在nginx.conf中使用“error_log”指令指定时的错误日志位置,如果没有指定,默认为/logs/error.log。
–http-log-path= – 当没有在nginx.conf中使用“access_log”指令指定时的访问日志位置,如果没有指定,默认为/logs/access.log。
–user= – 当没有在nginx.conf中使用“user”指令指定时nginx运行的用户,如果没有指定,默认为“nobody”。
–group= – 当没有在nginx.conf中使用“user”指令指定时nginx运行的组,如果没有指定,默认为“nobody”。
–builddir=DIR – 设置构建目录。
–with-rtsig_module – 启用rtsig模块。
–with-select_module –without-select_module – 如果在configure的时候没有发现kqueue, epoll, rtsig或/dev/poll其中之一,select模块始终为启用状态。
–with-poll_module –without-poll_module – 如果在configure的时候没有发现kqueue, epoll, rtsig或/dev/poll其中之一,poll模块始终为启用状态。
–with-http_ssl_module – 启用ngx_http_ssl_module,启用SSL支持并且能够处理HTTPS请求。需要OpenSSL,在Debian系统中,对应的包为libssl-dev。
–with-http_realip_module – 启用ngx_http_realip_module
–with-http_addition_module – 启用ngx_http_addition_module
–with-http_sub_module – 启用ngx_http_sub_module
–with-http_dav_module – 启用ngx_http_dav_module
–with-http_flv_module – 启用ngx_http_flv_module
–with-http_stub_status_module – 启用”server status”(服务状态)页
–without-http_charset_module – 禁用ngx_http_charset_module
–without-http_gzip_module – 禁用ngx_http_gzip_module,如果启用,需要zlib包。
–without-http_ssi_module – 禁用ngx_http_ssi_module
–without-http_userid_module – 禁用ngx_http_userid_module
–without-http_access_module – 禁用ngx_http_access_module
–without-http_auth_basic_module – 禁用ngx_http_auth_basic_module
–without-http_autoindex_module – 禁用ngx_http_autoindex_module
–without-http_geo_module – 禁用ngx_http_geo_module
–without-http_map_module – 禁用ngx_http_map_module
–without-http_referer_module – 禁用ngx_http_referer_module
–without-http_rewrite_module – 禁用ngx_http_rewrite_module。如果启用,需要PCRE包。
–without-http_proxy_module – 禁用ngx_http_proxy_module
–without-http_fastcgi_module – 禁用ngx_http_fastcgi_module
–without-http_memcached_module – 禁用ngx_http_memcached_module
–without-http_limit_zone_module – 禁用ngx_http_limit_zone_module
–without-http_empty_gif_module – 禁用ngx_http_empty_gif_module
–without-http_browser_module – 禁用ngx_http_browser_module
–without-http_upstream_ip_hash_module – 禁用ngx_http_upstream_ip_hash_module
–with-http_perl_module – 启用ngx_http_perl_module
–with-perl_modules_path=PATH – 为perl模块设置路径
–with-perl=PATH – 为perl库设置路径
–http-client-body-temp-path=PATH – 为http连接的请求实体临时文件设置路径,如果没有指定,默认为/client_body_temp
–http-proxy-temp-path=PATH – 为http代理临时文件设置路径,如果没有指定,默认为/proxy_temp
–http-fastcgi-temp-path=PATH – 为http fastcgi临时文件设置路径,如果没有指定,默认为/fastcgi_temp
–without-http – 禁用HTTP服务
–with-mail – 启用IMAP4/POP3/SMTP代理模块
–with-mail_ssl_module – 启用ngx_mail_ssl_module
–with-cc=PATH – 设置C编译器路径
–with-cpp=PATH – 设置C预处理器路径
–with-cc-opt=OPTIONS – 变量CFLAGS中附加的参数,用于FreeBSD中的PCRE库,同样需要指定–with-cc-opt=”-I /usr/local/include”,如果我们使用select()函数则需要同时增加文件描述符数量,可以通过–with-cc-opt=”-D FD_SETSIZE=2048”指定。
–with-ld-opt=OPTIONS – 通过连接器的附加参数,用于FreeBSD中的PCRE库,同样需要指定–with-ld-opt=”-L /usr/local/lib”。
–with-cpu-opt=CPU – 指定编译的CPU,可用的值为: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64
–without-pcre – 禁用PCRE库文件,同时将禁用HTTP rewrite 模块,如果要在”location”指令中使用正则表达式,同样需要PCRE库。
–with-pcre=DIR – 设置PCRE库源文件路径。
–with-pcre-opt=OPTIONS – 在编译时为PCRE设置附加参数。
–with-md5=DIR – 设置md5库源文件路径。
–with-md5-opt=OPTIONS – 在编译时为md5设置附加参数。
–with-md5-asm – 使用md5汇编源。
–with-sha1=DIR – 设置sha1库源文件路径。
–with-sha1-opt=OPTIONS – 在编译时为sha1设置附加参数。
–with-sha1-asm – 使用sha1汇编源。
–with-zlib=DIR – 设置zlib库源文件路径。
–with-zlib-opt=OPTIONS – 在编译时为zlib设置附加参数。
–with-zlib-asm=CPU – 为指定的CPU使用zlib汇编源进行优化,可用值为: pentium, pentiumpro。
–with-openssl=DIR – 设置openssl库源文件路径。
–with-openssl-opt=OPTIONS – 在编译时为openssl设置附加参数。
–with-debug – 启用debug记录。
–add-module=PATH – 增加一个在PATH中的第三方模块。
编译参数可能会根据版本的不同进行变化,可以使用./configure –help查看编译参数列表。
以上内容参考文档链接如下:

Nginx安装

http://my.oschina.net/kevinvane/blog/227140

http://www.linuxeden.com/html/sysadmin/20110611/110419.html

发表评论