Nginx软件模块说明

Posted LEO00

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx软件模块说明相关的知识,希望对你有一定的参考价值。

Nginx软件模块说明

Nginx常用模块

注:以下只是列举Nginx常用模块,需要详细了解更多模块可以登录Nginx官方网站查看

功能模块 模块说明
ngx_http_core_module 包含一些核心的http参数配置,对应Nginx的配置为http区块部分
ngx_http_access_module 访问控制模块,用来控制网站用户对Nginx的访问
ngx_http_gzip_module 压缩模块,对返回的数据压缩,属于性能优化模块
ngx_http_proxy_module proxy代理模块
ngx_http_upstram_module 负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查
ngx_http_rewrite_module URL地址重写模块
ngx_http_limit_conn_module 限制用户并发连接数及请求数模块
ngx_http_limit_req_module 根据定义的key限制Nginx请求过程的速率
ngx_http_log_module 访问日志模块,以指定的格式记录Nginx客户访问日志等信息
ngx_http_auth_basic_module Web认证模块,设置web用户通过账号密码访问Nginx
ngx_http_ssl_module ssl模块,用于加密的http连接,如https
ngx_http_stub_status_module 记录Nginx基本访问状态信息等的模块

 

 

 

 

 

 

 

 

 

 

Nginx目录结构

可以使用tree /usr/local/nginx/查看,以下为简单列举,如果需要详细请查看Nginx官方网站文档信息

tree /usr/local/nginx/

|-- conf #这是nginx所有的配置文件的总目录

|   |--fastcgi.conf #fastcgi相关参数配置文件

|   |--fastcgi.conf.default #fastcgi.conf的原始备份

|   |--fastcgi_params #fastcgi的参数文件

|   |--nginx.conf #这是nginx默认的主配置文件

|   |--nginx.conf.default #这是nginx默认的的原始备份

|--fastcgi_temp #fastcgi 临时数据目录

|--html #这是编译安装时nginx的默认站点目录,类似apache的默认站点htdocs目录

|   |--50x.html #错误页面优雅代替显示文件,例如:出现502错误时,会调用此页面;    #error_page 500 502 503 504 /50x.html         

|   |--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的启动命令nginx

|-- scgi_temp #临时目录

`-- uwsgi_temp #临时目录

Nginx配置文件

Nginx的配置文件是一个纯文本文件,它一般位于Nginx安装目录的conf目录下,整个配置文件是以block的形式组织的。每个block一般以一个大括号“{}”来表示。block 可以分为几个层次,整个配置文件中Main命令位于最高层,在Main层下面可以有Events、 HTTP等层级,而在HTTP层中又包含Server层,即server block, serverblock中又可分为location层,并且一个server block中可以包含多个location block;main部分设置的命令将影响其他所有设置; server 部分的命令主要用于指定主机和端口; location 部分用于匹配网页位置;server继承main, location 继承server。

  • main (全局设置) 
  • sever (主机设置)
  •  location(URL匹配特定位置的设置)

一个完整的Nginx配置文件框架如下图:

 Nginx配置文件的核心架构

worker_processes 1;
events {
        worker_connections 1024;
}
http {
        include mime.types;
        server {
            listen 80;
            server_name localhost;
              location / {
                  root html;
                  index index.html index.htm;
           }

      }
}

nginx.conf.default解析

[root@web01 conf]# egrep -v "#|^$" nginx.conf.default  #去掉#和空行的内容

worker_processes 1; #worker进程的数量
events { #事件区块开始
        worker_connections 1024; #每个worker进程支持的最大连接数
} #事件区块结束
http { #第一个http区块开始
        include mime.types; #Nginx支持的媒体类型库文件包含
        default_type application/octet-stream; #默认的媒体类型
sendfile on; #开启高效传输模式
keepalive_timeout 65; #连接超时
server { #第一个server区块开始,表示一个独立的虚拟主机站点
        listen 80; #提供服务端口默认80
        server_name localhost; #提供服务的域名主机名
           location / { #第一个location区块开始
               root html; #站点的根目录,相对于nginx安装目录
               index index.html index.htm; #默认的首页文件,多个则可以用空格分开
           } #第一个location区块结束
error_page 500 502 503 504 /50x.html; #出现对于的http状态码时,使用50x.html回应客户
          location = /50x.html { #第二个location区块开始,访问50x.html
              root html; #指定对应的站点目录为html
          } #第二个location区块结束
    } #第一个server区块结束
}#第一个http区块结束

注意:每行结束后除非是大括号{}结束,不然必须使用分号(;)结尾,否则会产生错误。

以上是关于Nginx软件模块说明的主要内容,如果未能解决你的问题,请参考以下文章

Nginx技术深入剖析

Nginx中的模块分类及常见配置项说明

Nginx之location模块说明

Nginx基础入门之fastcgi模块常用配置项说明

Puppet自编模块:nginx

nVisual部署之nginx配置说明