一、简介
1.1 Nginx是什么
Nginx是一款轻量级的Web服务器,也是一款轻量级的反向代理服务器
1.2 Nginx能干什么
a、直接支持Rails和PHP的程序
b、作为HTTP反向代理服务器
c、作为负载均衡服务器
d、作为邮件代理服务器
e、帮助实现前缀动静态分离
.....
1.3 Nginx特点
高稳定、高性能、资源占用少、功能丰富、模块化结构、支持热部署
二、安装
前置条件:
提醒:
请先检查/usr/bin下的gcc与make文件是不是空的,空的请先卸载掉,我就是因为没有卸载,所以出现的下面怎么多的坑。。。
a、需要gcc,系统自带了,没有的话,需要先安装
查看:
rpm -qa|grep gcc
安装:
yum install gcc gcc-c++ autoconf autmake libtool make
b、需要pcre,安装的命令如下:
yum install pcre*
c、需要zlib,安装的命令如下:
yum install zlib zlib-devel
d、如果需要支持ssl的话,安装OpenSSL,安装命令如下:
yum install openssl openssl-devel
e、上http://nginx.org/去下载源码包
安装:
第1步:
a、解压到/opt下,进入到nginx目录下
b、安装
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
说明:
--prefix:安装路径
--with:配置选项
异常:
解决:先卸载gcc
[[email protected] ~]# rpm -qa gcc gcc-4.4.7-17.el6.x86_64 [[email protected] ~]# rpm -e gcc-4.4.7-17.el6.x86_64 error: Failed dependencies: gcc = 4.4.4 is needed by (installed) libtool-2.2.6-15.5.el6.x86_64 [[email protected] ~]# rpm -e libtool-2.2.6-15.5.el6.x86_64 [[email protected] ~]# rpm -qa gcc [[email protected] nginx-1.10.3]# gcc -bash: /usr/bin/gcc: No such file or directory
卸载成功
再次安装gcc:
yum install gcc gcc-c++ autoconf autmake libtool make
进入nginx目录下安装
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
成功:
第2步:make、make install
异常:没有任何信息
查看/usr/bin下的make,发现是空的:
卸载make:
[[email protected] nginx-1.10.3]# rpm -qa make make-3.81-23.el6.x86_64 [[email protected] nginx-1.10.3]# rpm -e --allmatches --nodeps make-3.81-23.el6.x86_64 install-info: /usr/share/info/make.info.gz: empty file [[email protected] nginx-1.10.3]# rpm -qa make [[email protected] nginx-1.10.3]#
安装make:
yum -y install libtool make
make成功。
make install成功。
第3步:启动测试
进入到安装目录下的sbin目录:
cd /usr/local/nginx/sbin
测试配置文件:
./nginx -t
启动:默认是80端口
[[email protected] sbin]# ./nginx
停止:./nginx -s stop 或者 ./nginx -s quit
重启:./nginx -s reload
查看进程:
[[email protected] sbin]# ps -ef | grep nginx root 16984 1 0 20:15 ? 00:00:00 nginx: master process ./nginx nobody 16985 16984 0 20:15 ? 00:00:00 nginx: worker process root 16990 1405 0 20:21 pts/0 00:00:00 grep nginx
Nginx安装配置选项:
--prefix=<path>
安装路径,如果没有指定,默认为/usr/local/nginx。
--sbin-path=<path>
nginx可执行命令的文件,如果没有指定,默认为<prefix>/sbin/nginx。
--conf-path=<path>
在没有使用-c参数指定的情况下nginx.conf的默认位置,如果没有指定,默认为<prefix>/conf/nginx.conf。
--pid-path=<path>
nginx.pid的路径,如果没有在nginx.conf中通过“pid”指令指定,默认为<prefix>/logs/nginx.pid。
--lock-path=<path>
nginx.lock文件路径,如果没有指定,默认为<prefix>/logs/nginx.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运行的用户,如果没有指定,默认为“nobody”。
--group=<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连接的请求实体临时文件设置路径,如果没有指定,默认为<prefix>/client_body_temp
--http-proxy-temp-path=PATH
为http代理临时文件设置路径,如果没有指定,默认为<prefix>/proxy_temp
--http-fastcgi-temp-path=PATH
为http fastcgi临时文件设置路径,如果没有指定,默认为<prefix>/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中的第三方模块。