美文网首页
2020-03-22 Nginx技术深入剖析

2020-03-22 Nginx技术深入剖析

作者: 阿丧小威 | 来源:发表于2020-03-22 23:36 被阅读0次

1. Nginx软件的功能模块说明

1.1 Nginx核心功能模块(Core functionality)

Nginx核心功能模块负责Nginx的全局应用,主要对应主配置文件的Main区块和Events区块区域,这里有很多Nginx必须的全局参数配置。有关核心功能模块的详细信息官方地址为:http://nginx.org/en/docs/ngx_core_module.html

1.2 标准的HTTP功能模块集合

这些标准的HTTP功能模块,虽然不是Nginx软件所必须的,但都是很常用的,因此绝大部分默认情况都会自动安装到Nginx软件中,见下表。不建议擅自改动,保留软件的默认配置就好,除非你明确知道你在做什么,有什么额外影响。

企业场景常用的Nginx HTTP功能模块汇总

在生产环境中,配置、调整及优化Nginx软件,主要就是根据这些模块的功能修改相应的参数来实现的。通过官方地址http://nginx.org/en/docs/可以查看到上述及更多的模块的详细使用帮助。

2. Nginx软件的目录结构说明

[root@web01 html]# tree /application/nginx
/application/nginx
├── client_body_temp
├── conf    ---这是nginx的所有的配置文件的目录,极其重要
│?? ├── fastcgi.conf    ---fastcgi相关参数的配置文件
│?? ├── fastcgi.conf.default    ---fastcgi.conf的原始备份
│?? ├── fastcgi_params    ---fastcgi的参数文件
│?? ├── fastcgi_params.default    ---fastcgi的参数文件备份
│?? ├── koi-utf
│?? ├── koi-win
│?? ├── mime.types    ---媒体类型文件
│?? ├── mime.types.default    ---mime.types文件备份
│?? ├── nginx.conf    ---这是nginx默认的主配置文件
│?? ├── nginx.conf.default    ---nginx默认的主配置文件备份
│?? ├── scgi_params    ---scgi相关参数文件
│?? ├── scgi_params.default    ---scgi相关参数文件备份
│?? ├── uwsgi_params    ---uwsgi相关参数文件,配置Python环境可能会用到
│?? ├── uwsgi_params.default    ---uwsgi相关参数文件备份
│?? └── win-utf
├── fastcgi_temp    ---fastcgi临时数据目录
├── html    ---这是编译安装时nginx的默认站点目录,类似apache的默认站点htdocs目录
│?? ├── 50x.html    ---错误页面优雅替代显示文件,例如:出现502错误时会调用此页面
│?? ├── index.html    ---默认的首页文件,在实际环境中,大家习惯用index.html、index.php、index.jsp来做网站的首页文件。首页文件名字是在nginx.conf中事先定义好的。
├── logs    ---这是nginx默认的日志路径,包括错误日志及访问日志
│?? ├── access.log    ---这是nginx的默认访问日志文件,使用tail -f access.log可以时时观看网站用户访问情况信息
│?? ├── error.log    ---这是nginx的错误日志文件,如果nginx出现启动故障等问题,一定要看看这个错误日志
│?? └── nginx.pid    ---nginx的pid文件,nginx进程启动后,会把所有进程的ID号写到此文件
├── proxy_temp    ---临时目录
├── sbin    ---这是nginx命令的目录,如nginx的启动命令nginx
│?? └── nginx    ---nginx的启动命令
├── scgi_temp    ---临时目录
└── uwsgi_temp    ---临时目录
9 directories, 21 files

3. Nginx主配置文件nginx.conf

Nginx主配置文件nginx.conf是一个纯文本类型的文件(其他配置文件大多也是如此),它位于Nginx安装目录下的conf目录,整个配置文件是以区块的形式组织的。一般,每个区块以一个大括号“{}”来表示,区块可以分为几个层次,整个配置文件中Main区位于最上层,在Main区下面可以有Events区、HTTP区等层级,在HTTP区中又包含一个或多个Server区,每个Server区中又可有一个或多个Location区,整个Nginx配置文件nginx.conf的主体框架为:


image.png image.png image.png image.png image.png

nginx.conf是Nginx最重要的配置文件之一,因此必须要搞掂它。下面针对默认主配置文件nginx.conf的参数做详细的中文解释。
去掉所有注释行后其形式如下:

[root@web01 html]# egrep -v "^$|#" /application/nginx/conf/nginx.conf|cat -n    ---去掉包含#和空行的内容
     1  worker_processes  1;    ---worker进程的数量
     2  events {    ---事件区块开始
     3      worker_connections  1024;    ---每个worker进程支持的最大连接数
     4  }    ---事件区块结束
     5  http {    ---HTTP区块开始
     6      include       mime.types;    ---Nginx支持的媒体类型库文件包含
     7      default_type  application/octet-stream;    ---默认的媒体类型
     8      sendfile        on;    ---开启高效传输模式
     9      keepalive_timeout  65;    ---连接超时
    10      server {    ---第一个Server区块开始,表示一个独立的虚拟主机站点
    11          listen       80;    ---提供服务的端口,默认80
    12          server_name  localhost;    ---提供服务的域名主机名
    13          location / {    ---第一个Location区块开始
    14              root   html;    ---站点的根目录,相对于Nginx安装目录
    15              index  index.html index.htm;    ---默认的首页文件,多个用空格分开
    16          }
    17          error_page   500 502 503 504  /50x.html;    ---出现对应的http状态码时,使用50x.html回应客户
    18          location = /50x.html {    ---Location区块开始,访问50x.html
    19              root   html;    ---指定对应的站点目录为html
    20          }    ---location区块结束
    21      }    ---server区块结束
    22  }    ---http区块结束

4. Nginx其他的配置文件

如果是配合动态服务,Nginx软件还可能会用到扩展的FastCGI以及uwsgi等相关配置文件,这些配置是通过在nginx.conf主配置文件中嵌入include命令来实现的,不过默认情况是注释状态,不会生效。
Nginx配合PHP动态服务相关配置文件为fastcgi.conf、fastcfi_params。
Nginx配合Python动态服务相关配置文件为uwsgi_params。

相关文章

网友评论

      本文标题:2020-03-22 Nginx技术深入剖析

      本文链接:https://www.haomeiwen.com/subject/ghrbyhtx.html