Nginx编译安装详细过程

Nginx服务

基本HTTP服务:

1.处理静态文件(HTML静态网页及请求);包括索引文件以及支持自动索引.
2.打开并自行管理文件描述符缓存.
3.提供反向代理服务,并且可以使用缓存加速反向代理,同时完成简单负载均衡及容错.
4.提供远程FastCGI服务的缓存机制,加速访问,同时完成简单的负载均衡以及容错.
5.使用Nginx的模块化特性提供过滤器功能.Nginx基本过滤器包括gzip压缩,ranges支持,chunked响应,XSLT,SSL以及图像缩放等.其中,针对包含多个SSI的页面,经由FastCGI或反向代理,SSI过滤器可以并行处理.
6.支持HTTP下的安全套接层安全协议SSL.

高级HTTP服务:

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安装过程,让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

Nginx预编译常用的选项

选项 作用
–prefix=<path> 指定Nginx软件的安装路径。如果未指定,默认为/usr/local/nginx。
–sbin-path=<path> 指定Nginx软件的可执行文件安装路径。此项只能在安装时指定,如果未指定,默认为<prefix>/sbin/nginx/目录。
–conf-path=<path> 指定Nginx软件的配置文件安装路径。如果未指定,默认为<prefix>/conf/目录。
–pid-path=<path> 在nginx.conf中未指定pid指令的情况下。如果未指定,默认为<prefix>/logs/nginx.pid。pid文件中保存着当前运行的Nginx服务的进程号。
–lock-path=<path> 指定nginx.lock文件的路径。nginx.lock是Nginx服务器的锁文件,如果未指定,默认为/var/lock/目录。
–error-log-path=<path> 在nginx.conf中未指定error_log指令的情况下,指定默认的错误日志路径。如果未指定,默认为<prefix>/logs/error.log。
–http-log-path=<path> 在nginx.conf中未指定access_log指令的情况下,指定默认的访问日志路径。如果未指定,默认为<prefix>/logs/access.log。
–user=<user> 在nginx.conf中未指定user指令的情况下,指定默认的Nginx服务器进程的属主用户,即Nginx进程运行的用户。可以理解为那个用户启动Nginx。如果未指定,默认为nobody,表示不限制。
–group=<group> 在nginx.conf中未指定group指令的情况下,指定默认的Nginx服务器进程的属主用户组,即Nginx进程运行的用户组。可以理解为那个用户组的用户启动Nginx。如果未指定,默认为nobody,表示不限制。
–builddir=<path> 指定编译时的目录。
–with-debug 声明启用Nginx的调试日志。
–add-module=<path> 指定第三方模块的路径,用以编译到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=<path> 指定perl模块的路径。
–with-perl=<path> 指定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=<path> 指定存放HTTP访问客户端请求报文的临时文件的路径。
–http-proxy-temp-path=<path> 启用HTTP的proxy模块后,指定存放HTTP代理临时文件的路径。
–http-fastcgi-temp-path=<path> 启用HTTP的fastcgi模块后,指定存放fastcgi模块临时文件的路径。
–without-http 声明禁用HTTP Server。
–with-mail 声明启用IMAP/POP3/SMTP代理模块。该模块负责Mail代理服务的处理。
–with-mail_ssl_module 声明启用ngx_mail_ssl_module。
–with-cc=<path> 指定C编译器的路径。
–with-cpp=<path> 指定C预处理器的路径。
–with-cc-opt=<options> 为CFLGS变量添加额外的参数,保证Nginx源代码及其模块能够正确编译。比如在FreeBSD系统中,为了在编译Nginx源代码的同时再去编译pcre库,必须使用–with-cc-opt="-I /usr/local/include"声明‘再比如,为了使用select模块,必须增加系统允许打开的文件描述符的数量,其中一种方法就是使用–with-cc-opt="-D FD_SETSIZE=2048"声明。
–with-ld-opt=<path> 为部分Nginx软件的模块编译指定链接库目录。不如在FreeBSD系统中,为了在编译Nginx源代码的同时编译pcre库,必须使用–with-ld-opt="-L /usr/local/lib"声明。
–with-cpu-opt=<cpu> 为特定的CPU编译Nginx源代码。官方指定的有效值包括:pentium、pentium pro、pentium 3、pentium 4、athlon、opteron、amd 64、sparc 32、sparc 64、ppc 64等。
–with-pcre=<dir> 指定pcre库源代码的路径。这样可以在编译Nginx源代码的同时编译pcre库,而不需要提前安装pcre库。
–without-pcre 禁止Nginx服务器使用pcre库。此设置同时也会禁止HTTP rewrite模块,因为rewrite模块的正常运行必须由pcre库来支持。在解析配置文件的location指令中的正则表达式时,也需要使用pcre库。因此,强烈建议用户不要使用此选项。
–with-pcre-opt=<path> 为pcre库的building指定额外的指令。
–with-md5=<dir> 指定md5库源代码的路径。这样可以在编译Nginx源代码的同时编译md5库,而不需要提前安装md5库。
–with-md5-opt=<options> 为md5库的building指定额外的指令。
–with-md5-asm 声明使用md5库的汇编源代码。
–with-shal=<dir> 指定shal库源代码的路径。这样可以在编译Nginx源代码的同时编译shal库,而不需要提前安装shal库。
–with-shal-opt=<options> 为shal库的building指定额外的指令。
–with-shal-asm 声明使用shal库的汇编源代码。
–with-zlib=<dir> 指定zlib库源代码的路径。这样可以在编译Nginx源代码的同时编译zlib库,而不需要提前安装zlib库。
–with-zlib-opt=<options> 为zlib库的building指定额外的指令。
–with-zlib-asm=<cpu> 针对特殊的CPU声明使用汇编源代码。官方指定的有效值包括:pentium、pentium pro等。
–with-openssl=<dir> 指定OpenSSL库源代码路径。这样可以在编译Nginx源代码的同时编译OpenSSL库,而不需要提前安装OpenSSL库。
–with-openssl-opt=<options> 为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$1in
	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。

扫描二维码关注公众号,回复: 11341165 查看本文章
Nginx服务的启停控制和命令用法以及平滑升级

猜你喜欢

转载自blog.csdn.net/qq_42279077/article/details/88046324