功能:
特性:
有点像httpd的event模型。
一个主进程(master进程)用于加载配置文件,生成、管理各子进程(worker进程);
各worker进程用于实现响应请求、反向代理等具体功能。由于基于事件驱动的IO模型,所以每个worker进程可并发响应多个请求。
主进程由root运行;worker进程由系统用户nginx运行。
光盘镜像上没有nginx,可在epel源安装。下面在CentOS 6.8主机进行编译安装nginx1.8。
注意,nginx的次版本号是偶数的才是稳定版,奇数一般是测试版本。
步骤:
1、在nginx官网 http://nginx.org/ 下载nginx1.8的源码(官网也提供rpm包下载,在Pre-Built Packages项下);
2、可以看到官网对于编译安装使用configure选项的说明和示例(当然具体编译时路径、版本未必和示例相同):
./configure
--sbin-path=/usr/local/nginx/nginx # 指定nginx指令路径
--conf-path=/usr/local/nginx/nginx.conf # 指定配置文件路径
--pid-path=/usr/local/nginx/nginx.pid # 指定pid文件路径
--with-http_ssl_module # 指定装载ssl模块
--with-pcre=../pcre-8.41 # 指定装载pcre开发包,用于路径重定向时使用正则表达式匹配
--with-zlib=../zlib-1.2.11 # 指定装载zlib开发包,用于页面压缩。注意必须指定zlib的【源码】路径。没有的话到官网 http://zlib.net/ 下载,且对版本有要求,nginx的官网有说明
3、鉴于需要zlib的源码路径,本文是从zlib官网下载zlib-1.2.11版本:
[root@node1 zlib-1.2.11]% pwd
/usr/local/src/zlib/zlib-1.2.11
[root@node1 zlib-1.2.11]% ./configure
……
并且,要在zlib目录内部,使用./configure生成makefile,因为nginx编译安装时要用到此makefile,否则make时会报错:
make[2]: Entering directory `/usr/local/src/zlib/zlib-1.2.11'
make[2]: *** No rule to make target `distclean'. Stop.
……
表示系统无法在此目录下执行”make distclean”(因为没有makefile文件,所以要预先生成)
4、为运行nginx的worker进程,先创建系统用户nginx:
[root@node1 nginx-1.8.1]% useradd -r nginx
5、运行在nginx目录下运行./confugre1:
[root@node1 nginx-1.8.1]% ./configure --prefix=/usr/local/nginx/ --sbin-path=/usr/local/nginx/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre --with-zlib=/usr/local/src/zlib/zlib-1.2.11
6、make && make install
配置文件就在编译时指定的路径下:
[root@node1 nginx]% ls /etc/nginx/
fastcgi.conf fastcgi_params.default mime.types nginx.conf.default uwsgi_params
fastcgi.conf.default koi-utf mime.types.default scgi_params uwsgi_params.default
fastcgi_params koi-win nginx.conf scgi_params.default win-utf
在安装目录下,有目录html、log和一个可执行程序nginx
[root@node1 nginx]% ls /usr/local/nginx/
html logs nginx
主要说明下nginx指令的作用,他可作为服务脚本使用:
[root@node1 nginx]% /usr/local/nginx/nginx -h
nginx version: nginx/1.8.1
Usage: nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
-?,-h : this help
-v : show version and exit # 查看版本
-V : show version and configure options then exit
-t : test configuration and exit # 检查配置文件语法
-q : suppress non-error messages during configuration testing
-s signal : send signal to a master process: stop, quit, reopen, reload # 向nginx的master进程发信号以控制nginx进程,有重载配置文件、停止(stop是等待当前用户访问结束再终止、quit是强行终止)等信号,可当作服务脚本使用。注意,使用重载reload时,nginx必须是启动的状态,否则报错"nginx: [error] invalid PID number"
-p prefix : set prefix path (default: /usr/local/nginx//)
-c filename : set configuration file (default: /etc/nginx/nginx.conf)
-g directives : set global directives out of configuration file
直接使用这个指令则表示启动服务。
(完)