zoukankan      html  css  js  c++  java
  • 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块 结束 ####################
    
  • 相关阅读:
    mac系统怎么给文件夹加密?mac文件夹加密教程
    android 代码优化:关闭输出日志
    mac下安装eclipse+CDT
    Android JNI MAC OS环境配置
    在mac下设置环境变量
    build_native.py文件分析(2)
    使Android 自带SDK 完美支持HTML5 之 html5webview
    WebView基本使用
    android EditText如何使光标随着输入内容移动
    mac下增加eclipse内存
  • 原文地址:https://www.cnblogs.com/studyandstudy/p/14993507.html
Copyright © 2011-2022 走看看