本笔记是以CentOS 操作系统为基础,参考张宴的《实战Nginx取代Apache的高性能Web服务器》一书,里面有个人经验,本博文最后有一个添加Nginx服务控制脚本,是张宴一书没有的。
---------------------------------------------------
1.确保操作系统安装有GCC编译器。
GCC编译器及相关工具:GCC全称为GNU Compiler Collection,是GNU社区推出的功能强大、性能优越的用于编程开发的自由编译器,是GNU的代表作品之一,目前可以编译的语言包括:C、C++、Objective-C、Fortran、Java等。您必须确保您的操作系统安装有GCC编译器。
另外,还必须安装Autoconf 和 Automake工具,它们用于自动创建功能完善的Makefile,当前大多数软件包都是用这一工具生成Makefile的,Nginx也不例外。在CentOS系统下,使用yum命令安装GCC编译器及相关工具。
2.模块依赖性:Nginx的一些模块需要其他第三方库的支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库等。同样,在CentOS系统下,使用yum命令安装或下载源码包编译安装这些模块依赖的库。
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel3.Nginx的最简单安装命令如下。
tar zxvf nginx-x.x.xx.tar.gz (x.x.xx:为版本号) cd nginx-x.x.xx.tar.gz ./configure --with-http_stub_status_module make make install 按照以上命令,Nginx将被默认安装到/usr/local/nginx目录下。4.Nginx的configure脚本支持的选项。(可以通过 ./configure --help命令查看Nginx可选择的编译选项,以下仅列出本人比较常用的选项)
--prefix=<path> ——Nginx安装路径,如果没有指定,默认为 /usr/local/nginx --sbin-path=<path> ——Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx --conf-path=<path> ——在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf --pid-path=<path> ——在nginx.conf中没有指定pid指令的情况下,默认的nginx.pid的路径。如果没有指定,默认为<prefix>/logs/nginx.conf --error-log-path=<path> ——在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为<prefix>/logs/error.log --http-log-path=<path> ——在nginx.conf中没有指定access_log指令的情况下,默认的访问日志的路径。如果没有指定,默认为<path>/logs/access.log --user=<path> ——在nginx.conf中没有指定user指令的情况下,默认的Nginx使用的用户。如果没有指定,默认为nobody --group=<path> ——在nginx.conf中没有指定user指令的情况下,默认的Nginx使用的组,如果没有指定,默认为nobody --with-http_ssl_module ——开启HTTP SSL模块,使Nginx可以支持HTTPS请求。这个模块需要已经安装 openssl ,在debian上是libssl --with-http_dav_module ——启用ngx_http_dav_module --with-http_flv_module ——启用ngx_http_flv_module --with-http_gzip_module ——启用ngx_http_gzip_module,需要zlib库的支持 --with-http_stub_status_module ——启用“server status”统计页 --with-http_referer_module ——启用ngx_http_referer_module,当浏览器向web服务器发送请求的时候,一般会带上referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理 --with-http_rewrite_module ——启用ngx_http_rewrite_module,需要pcre库的支持 --with-http_proxy_module ——启用ngx_http_proxy_module --with-http_fastcgi_module ——启用ngx_http_fastcgi_module --http-client-body-temp-path=PATH ——指定http客户端请求缓存文件存放目录的路径 --http-proxy-temp-path=PATH ——指定http反向代理缓存文件存放目录的路径 --http-fastcgi-temp-path=PATH ——指定http FastCGI缓存文件存放目录的路径 --with-mail ——启用IMAP4/POP3/SMTP 代理模块 --with-mail_ssl_module ——启用ngx_mail_ssl_module --with-cpu-opt=CPU ——为特定的CPU编译,有效的值包括:pentium 、pentiumpro 、pentium3 、pentium4 、athlon 、opteron 、amd64 、sparc64 、ppc64 --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-openssl=DIR ——设置openssl库的源代码路径 --with-openssl-opt=OPTIONS ——设置openssl库的额外编译选项 --with-debug ——启用调试日志 --add-module=PATH ——添加一个在指定路径中能够找到的第三方模块