1、nginx基本特性及编译安装

0 目录

  • 目录
  • nginx功能及特性
  • nginx进程架构
  • 安装
  • 编译安装后管理

1 nginx功能及特性

功能:

  • 作为web服务端,响应静态资源
  • 作为http、邮件服务的反向代理服务器

特性:

  • 相对于httpd,更好解决高并发问题(c10k,并发连接数达到10000)
  • 模块化设计,较好的扩展性。但不像httpd支持DSO(动态共享模块),只能在编译时指定好要装载的模块
  • 高可靠性
  • 低内存损耗
  • 支持热部署。在不停机的情况下万册和那个版本升级等
  • 服务进程的IO模型支持事件驱动(类似httpd的event模型)
  • 相对于httpd,更加轻量

2 nginx进程架构

有点像httpd的event模型。

一个主进程(master进程)用于加载配置文件,生成、管理各子进程(worker进程);
各worker进程用于实现响应请求、反向代理等具体功能。由于基于事件驱动的IO模型,所以每个worker进程可并发响应多个请求。

主进程由root运行;worker进程由系统用户nginx运行。

3 安装

光盘镜像上没有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

4 编译安装后管理

配置文件就在编译时指定的路径下:

[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

直接使用这个指令则表示启动服务。

(完)


  1. 注意pcre没有指定具体路径,系统会从默认路径下找pcre包(一般是/usr目录下)。如果pcre是编译安装的,则需要指名具体路径。
    编译安装选项就是这样,对于使用默认路径的可不指定具体路径。 ↩

你可能感兴趣的:(nginx,nginx)