1.处理静态文件(HTML静态网页及请求);包括索引文件以及支持自动索引.
2.打开并自行管理文件描述符缓存.
3.提供反向代理服务,并且可以使用缓存加速反向代理,同时完成简单负载均衡及容错.
4.提供远程FastCGI服务的缓存机制,加速访问,同时完成简单的负载均衡以及容错.
5.使用Nginx的模块化特性提供过滤器功能.Nginx基本过滤器包括gzip压缩,ranges支持,chunked响应,XSLT,SSL以及图像缩放等.其中,针对包含多个SSI的页面,经由FastCGI或反向代理,SSI过滤器可以并行处理.
6.支持HTTP下的安全套接层安全协议SSL.
1.支持基于名字和IP的虚拟机设置.
2.支持HTTP/1.0中的KEEP-Alive模式和管线模型连接.
3.支持重新加载配置以及在线升级时,无须中断正在处理的请求.
4.自定义访问日志格式,带缓存的日志写操作以及快速日志轮转.
5.提供3xx~5xx错误代码重定向功能.
6.支持重写(Rewrite)模块扩展.
7.支持HTTP DAV模块,从而为HTTP WEBDAV提供PUT,DELETE,MKCOL,COPY以及MOVE方法.
8.支持FLV流和MP4流传输.
9.支持网络监控,包括基于客户端IP和HTTP基本认证机制的访问控制,速度限制,来自同一地址的同时连接数或请求数限制等.
10.支持嵌入Perl语言.
1.支持使用外部HTTP认证服务器重定向用户到IMAP/POP3后端,并支持IMAP认证方式(LOGIN,AUTH LOGIN/PLAIN/CRAM-MD5)和POP3认证方式(USER/PASS,APOP,AUTH LOGIN/PLAIN/CRAM-MD5).
2.支持使用外部HTTP认证服务器认证用户后重定向连接到内部SMTP后端,并支持SMTP认证方式(AUTH LOGIN/PLAIN/CRAM-MD5).
3.支持邮件代理服务下的安全套阶层安全协议SSL.
4.支持纯文本通信协议的扩展协议STARTTLS.
在此处呢,每个步骤都会进行解释,想要读者能够更加详细的了解Nginx安装过程,让Nginx变的不是那么的陌生。
1、安装Nginx依赖环境
yum -y install gcc gcc-c++ zlib-devel zlib pcre-devel pcre automake openssl openssl-devel #干净的系统会没有make命令
#解释:
#gcc和gcc-c++:用来编译Nginx源码的。
#zlib-devel和zlib:用来支持Nginx中的gzip压缩模块的。
#pcre-devel和pcre:用来支持Nginx中的rewrite重定向模块的。
#openssl-devel核openssl:用来支持Nginx中的SSL模块的。
2、下载并解压Nginx压缩包
wget http://nginx.org/download/nginx-1.6.0.tar.gz #版本号可以自己修改成自己想要的版本。
tar -zxvf nginx-1.6.0.tar.gz -C /usr/src
#解释:
#-z:格式为gzip
#-x:解压缩
#-v:显示详细过程
#-f:指定打包的文件名
#-C:指定解压后保存的目录
3、编译安装Nginx
cd /usr/src/nginx-1.6.0
./configure --prefix=/usr/local/nginx #预编译状态
make #编译状态
make install #安装状态
#解释:
#./configure --prefix=/usr/local/nginx:指定Nginx安装的路径
#make:编译Nginx源码
#make install:安装Nginx
选项 | 作用 |
---|---|
–prefix= |
指定Nginx软件的安装路径。如果未指定,默认为/usr/local/nginx。 |
–sbin-path= |
指定Nginx软件的可执行文件安装路径。此项只能在安装时指定,如果未指定,默认为 |
–conf-path= |
指定Nginx软件的配置文件安装路径。如果未指定,默认为 |
–pid-path= |
在nginx.conf中未指定pid指令的情况下。如果未指定,默认为 |
–lock-path= |
指定nginx.lock文件的路径。nginx.lock是Nginx服务器的锁文件,如果未指定,默认为/var/lock/目录。 |
–error-log-path= |
在nginx.conf中未指定error_log指令的情况下,指定默认的错误日志路径。如果未指定,默认为 |
–http-log-path= |
在nginx.conf中未指定access_log指令的情况下,指定默认的访问日志路径。如果未指定,默认为 |
–user= |
在nginx.conf中未指定user指令的情况下,指定默认的Nginx服务器进程的属主用户,即Nginx进程运行的用户。可以理解为那个用户启动Nginx。如果未指定,默认为nobody,表示不限制。 |
–group= |
在nginx.conf中未指定group指令的情况下,指定默认的Nginx服务器进程的属主用户组,即Nginx进程运行的用户组。可以理解为那个用户组的用户启动Nginx。如果未指定,默认为nobody,表示不限制。 |
–builddir= |
指定编译时的目录。 |
–with-debug | 声明启用Nginx的调试日志。 |
–add-module= |
指定第三方模块的路径,用以编译到Nginx服务器中。 |
–with-poll_module | 声明启用poll模块。poll模块是信号处理的一种方法,和下面提到的select模式类似,都是采用轮询方法处理信号。 |
–without-poll_module | 声明禁用poll模块。 |
–with-select_module | 声明启用select信号处理模式。若configure未找到指定其他的信号处理模式,则默认使用select模式。 |
–without-select_module | 声明禁用select信号处理模式。 |
–with-http_ssl_module | 声明启用HTTP的ssl模块,这样Nginx服务器就可以支持HTTPS请求了,这个模块的正常运行需要安装OpenSSL库(在DEBIAN上为libssl)。 |
–with-http_realip_module | 声明启用HTTP的realip模块,默认不启用。 |
–with-http_addition_module | 声明启用HTTP的addition模块,默认不启用。 |
–with-http_sub_module | 声明启用HTTP的sub模块,默认不启用。 |
–with-http_dav_module | 声明启用HTTP的dav模块,默认不启用。 |
–with-http_flv_module | 声明启用HTTP的flv模块,默认不启用。flv模块使得Nginx服务器支持flv流媒体传输。 |
–with-http_stub_status_module | 声明启用Server Status页。默认不启用。 |
–with-http_perl_module | 声明启用HTTP的perl模块。默认不启用。perl模块使得Nginx服务器支持perl脚本的运行。 |
–with-perl_modules_path= |
指定perl模块的路径。 |
–with-perl= |
指定perl执行文件的路径。 |
–without-http_charset_module | 声明禁用HTTP的charset模块。默认启用。 |
–without-http_gzip_module | 声明禁用HTTP的gzip模块。默认启用。使用gzip模块,需要安装zlib库。 |
–without-http_ssi_module | 声明禁用HTTP的ssi模块。默认启用。 |
–without-http_userid_module | 声明禁用HTTP的userid模块。默认启用。 |
–without-http_access_module | 声明禁用HTTP的access模块。默认启用。 |
–without-http_auth_basic_module | 声明禁用HTTP的auth basic模块。默认启用。 |
–without-http_autoindex_module | 声明禁用HTTP的autoindex模块。默认启用。 |
–without-http_geo_module | 声明禁用HTTP的geo模块。默认启用。 |
–without-http_map_module | 声明禁用HTTP的map模块。默认启用。 |
–without-http_referer_module | 声明禁用HTTP的referer模块。默认启用。 |
–without-http_rewrite_module | 声明禁用HTTP的rewrite模块。默认启用。使用rewrite模块,需要安装pcre库。 |
–without-http_proxy_module | 声明禁用HTTP的proxy模块。默认启用。 |
–without-http_fastcgi_module | 声明禁用HTTP的fastcgi模块。默认启用。 |
–without-http_memcached_module | 声明禁用HTTP的memcached模块。默认启用。 |
–without-http_limit_zone_module | 声明禁用HTTP的limit zone模块。默认启用。Limit zone模块主要负责Nginx服务器共享内存的管理。 |
–without-http_empty_gif_module | 声明禁用HTTP的empty gif模块。默认启用。 |
–without-http_browser_module | 声明禁用HTTP的browser模块。默认启用。 |
–without-http_upstream_ip_hash_module | 声明禁用HTTP的upstream ip hash模块。默认启用。 |
–http-client-body-temp-path= |
指定存放HTTP访问客户端请求报文的临时文件的路径。 |
–http-proxy-temp-path= |
启用HTTP的proxy模块后,指定存放HTTP代理临时文件的路径。 |
–http-fastcgi-temp-path= |
启用HTTP的fastcgi模块后,指定存放fastcgi模块临时文件的路径。 |
–without-http | 声明禁用HTTP Server。 |
–with-mail | 声明启用IMAP/POP3/SMTP代理模块。该模块负责Mail代理服务的处理。 |
–with-mail_ssl_module | 声明启用ngx_mail_ssl_module。 |
–with-cc= |
指定C编译器的路径。 |
–with-cpp= |
指定C预处理器的路径。 |
–with-cc-opt= |
为CFLGS变量添加额外的参数,保证Nginx源代码及其模块能够正确编译。比如在FreeBSD系统中,为了在编译Nginx源代码的同时再去编译pcre库,必须使用–with-cc-opt="-I /usr/local/include"声明‘再比如,为了使用select模块,必须增加系统允许打开的文件描述符的数量,其中一种方法就是使用–with-cc-opt="-D FD_SETSIZE=2048"声明。 |
–with-ld-opt= |
为部分Nginx软件的模块编译指定链接库目录。不如在FreeBSD系统中,为了在编译Nginx源代码的同时编译pcre库,必须使用–with-ld-opt="-L /usr/local/lib"声明。 |
–with-cpu-opt= |
为特定的CPU编译Nginx源代码。官方指定的有效值包括:pentium、pentium pro、pentium 3、pentium 4、athlon、opteron、amd 64、sparc 32、sparc 64、ppc 64等。 |
–with-pcre= |
指定pcre库源代码的路径。这样可以在编译Nginx源代码的同时编译pcre库,而不需要提前安装pcre库。 |
–without-pcre | 禁止Nginx服务器使用pcre库。此设置同时也会禁止HTTP rewrite模块,因为rewrite模块的正常运行必须由pcre库来支持。在解析配置文件的location指令中的正则表达式时,也需要使用pcre库。因此,强烈建议用户不要使用此选项。 |
–with-pcre-opt= |
为pcre库的building指定额外的指令。 |
–with-md5= |
指定md5库源代码的路径。这样可以在编译Nginx源代码的同时编译md5库,而不需要提前安装md5库。 |
–with-md5-opt= |
为md5库的building指定额外的指令。 |
–with-md5-asm | 声明使用md5库的汇编源代码。 |
–with-shal= |
指定shal库源代码的路径。这样可以在编译Nginx源代码的同时编译shal库,而不需要提前安装shal库。 |
–with-shal-opt= |
为shal库的building指定额外的指令。 |
–with-shal-asm | 声明使用shal库的汇编源代码。 |
–with-zlib= |
指定zlib库源代码的路径。这样可以在编译Nginx源代码的同时编译zlib库,而不需要提前安装zlib库。 |
–with-zlib-opt= |
为zlib库的building指定额外的指令。 |
–with-zlib-asm= |
针对特殊的CPU声明使用汇编源代码。官方指定的有效值包括:pentium、pentium pro等。 |
–with-openssl= |
指定OpenSSL库源代码路径。这样可以在编译Nginx源代码的同时编译OpenSSL库,而不需要提前安装OpenSSL库。 |
–with-openssl-opt= |
为OpenSSL库的building指定额外的指令。 |
4、设置Nginx命令环境变量
ln -s /usr/local/nginx/sbin/* /usr/local/sbin
#解释:
#-s:软链接
5、编写nginx服务开启关闭脚本
vim /etc/init.d/nginx
添加:
#/bin/bash
#chkconfig:2345 99 20
PROG=”/usr/local/nginx/sbin/nginx”
PIDF=”/usr/local/nginx/logs/nginx.pid”
case “$1” in
start)
$PROG
echo “starting nginx……….”;;
stop)
kill -s QUIT $(cat $PIDF)
echo “stop nginx…………….”;;
restart)
$0 stop
$0 start;;
reload)
kill -s HUP $(cat $PIDF)
echo “reloading nginx……………”;;
*)
echo “Usage : nginx{start | stop | restart | reload}”
exit 1
esac
exit 0
6、启动Nginx服务
chkconfig --add nginx
chkconfig nginx on
systemctl start nginx(Centos7) | service nginx start(Centos6)
#解释:
#chkconfig --add nginx:添加nginx到系统服务中
#chkconfig nginx on:启动nginx系统服务
#systemctl start nginx:这是Centos7启动服务的命令
#service nginx start:这是Centos6启动服务的命令
7、效果图
firefox 192.168.1.110
#解释:
#firefox 192.168.1.110:使用火狐浏览器访问192.168.1.110这个站点
看完上面的操作之后相信你对nginx的安装更加了解了,那么想学习它的使用请看下面这篇文章,可以让你更加的深入了解nginx。