nginx优化之nginx的配置文件详解

前言

默认的nginx服务器配置文件都存放在安装目录conf中,主配置文件名为nginx.conf,下面我们来看看nginx的配置文件内容和一些基本的配置方法。

一个完整nginx配置文件展示

worker_processes 1;                                 #全局生效

events {
  worker_connections 1024;                          #在events部分中生效
}

http {
  include mime.types       ;                               #以下指令在http部分中生效
  default_type application/octet-stream;
  sendfile on;
  keepalive_timeout 65;
  server {                                          #以下指令在http的server部分中生效
    listen 80;
    server_name localhost;
    location / {                                    #以下指令在http/server的location中生效
      root html;
      index index.html index.htm;
    }
    error_page 500 502 503 504 /50x.html;
    location - /50x.html {
      root html;
    }

    location ~ \.php$ {
        root html;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
  }
}

注意:在nginx配置中,还包括注释内容,注释标志位“#”。

nginx文件配置的结构

初始的nginx服务器主配置是比较长的,不过结构和内容还是比较清晰的,以下我们分为几个小节进行分析介绍。通过上面的配置文件内容分,我们可以总结出以下nginx.conf的基本结构:

...                            #全局快

events                         #events块
{
  ...
}

http                           #http块
{
  ...                          #http全局块

  server                       #server块
  {
    ...                        #server全局块

    location [PATTERN]         #location块
    {
      ...
    }

    location [PATTERN]         #location块
    {
      ...
    }
  }

  server                       #server块
  {
    ...
  }

  ...                          #http块
}

通过上图,我们可以看出,nginx主要有三块组成,分别是全局块,events块和http块;在http块中,又包含http全局块,多个server块;每个server块中,可以包含server全局块和多个location块.

在同一块配置中嵌套的配置块,各个之间不存在次序关系.

nginx详细配置信息

以下是一个nginx的完整配置文件,本节我们将以下面的配置文件为主解析nginx各个模块的参数已经配置,在完成解析后测试nginx服务。

####################  全局块 开始 ####################

#配置允许运行nginx服务器的用户和用户组
user root root;

#配置允许nginx进程生成的worker processes数
worker processes 3;

#配置允许nginx服务器运行对错误日志存放路径
error_log logs/error.log;

#配置nginx服务器运行时的pid文件存放路径和名称
pid nginx.pid;

####################  全局块 结束 ####################

####################  server块 开始 ####################

events
{
  #配置事件驱动模型
  use epoll;

  #配置最大连接数
  worker_connections 1024;
}

####################  server块 结束 ####################

####################  http块 开始 ####################
http
{
  # 定义MIME-Type
  include mime.types;
  default_type application/octet-stream;

  #配置允许使用sendfile方式传输
  sendfile on;

  #配置连接超时时间
  keepalive_timeout 65;

  #配置请求处理日志的格式
  log_format access.log;
  ‘$remote_addr - [$time_local]-"$request"-"$http_user_agent"‘;

  ####################  server块 开始 ####################
  #配置虚拟主机myServer1
  server {
    #配置监听端口和主机名称(基于名称)
    listen 8081;
    server_name myServer1;

    #配置请求处理日志存放路径
    access_log /myweb/server1/log/access.log;

    #配置错误页面
    error_page 404 /404.html;

    #配置处理/server1/location1请求的location
    location /server/location1 {
      root /myweb;
      index index.svrl-locl.htm;
    }

    #配置处理/server1/location2请求的location
    location /server1/location2 {
      root /myweb;
      index index.svrl-loc2.htm;
    }
  }

  #配置虚拟主机myServer2
  server {
    listen 8082;
    server_name 192.168.1.3;
    access_log /myweb/server1/log/access.log;

    #对错误页面404.html做了定向配置
    error_page 404 /404.html;

    location /server2/location1 {
      root /myweb;
      index index.svr2-locl.htm;W
    }

    location /svr2/loc2 {
      #对location的URL进行更改
      alias /myweb/server2/location2/;
      index index.svr2-loc2.htm;
    }

    #配置错误页面转向
    location = /404.html {
      root /myweb/;
      index 404.html;
    }
  }
  ####################  server块 结束 ####################
}
####################  http块 结束 ####################

nginx优化之nginx的配置文件详解

上一篇:k8s之路-Rancher


下一篇:leetcode 面试题 17.10. 主要元素