zoukankan      html  css  js  c++  java
  • nginx配置文件

    # nginx.conf文件示例
    user nobody; worker_processes 8; error_log varlog/nginx/error.log error; #pid logs/nginx.pid events { use epoll; worker_connections 50000; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr [$time_local] "$request" '; access_log logs/access.log main buffer=32k; ... }

    所有的事件类配置都要在events中

    events {...

    }

    http {

      upstream backend {

        server 127.0.0.1:8080;

      }

      gzip on;

      server {

          ...

          location  /webstatic {

                gzip off;

                }

      }

    }

    块配置项可以嵌套。内层块 直接继承外层块 ,当发生冲突时,以内层为准,如上面的gzip 在外层为 on ,到location内层时 gzip为off 

    块配置项由一个块配置项名和一对大括号组成

    基本的配置项语法格式为:

    配置项名 配置项值1 配置项值2 ...;

    在行首的是配置名,这些配置名必须是nginx的某一个模块需要处理的,否则nginx会认为配置文件出现里非法配置名

    配置项名结束后以空格作为分隔符

    配置项值可以是数字,字符串,正则表达式,可以只有一个值或多个值, 每行配置的结尾需要加上分号

    如果配置项值中包括语法符号如空格,需要使用单/双 引号括住配置项值

    nginx.conf中的注释以 #开头

    配置项的单位

    指定空间大小时可使用 :          K/k     表示KB       M/m    表示 MB

    时间单位可使用:     ms(毫秒)    s(秒)   m(分钟)   h(小时)  d(天)    w(周,7天)  M(月,30天)   y(年,365天) 

     

    配置项中使用变量(只有某些模块支持这种 使用变量的写法)

    log_format  main  '$remote_addr- $remote_user  [$time_local]  "$request" ' ;

    上例中 $remote_addr表示一个变量 remote_addr 

    nginx服务的基本配置

    daemon on|off;                                      默认 daemon on; 设置nginx是否以守护进程(脱离终端在后台运行的进程)方式运行

    master_process on|off;                        默认master_process on;   生产环境中nginx都是以一个master进程管理多个worker进程的方式运行;

                      如果关闭 ,则不会fork出worker子进程,而是master进程自身来处理请求

    error_log pathfile level ;                     默认为 logs/error.log error; 设置nginx  err日志的位置与等级 ,级别有debug,info,notice,warn error,crit,alert,emerg

     debug_connection[IP|CIDR]               改配置属于事件配置,必须放在events{...}中才有效,可以是ip地址或cidr地址。需确保编译执行congfigure时是使用了--with-debug参数。

    events {

        debug_connection 10.224.66.14;

        debug_connection 10.224.57.0/24;

    }

    这样只有来自上面IP地址的请求才会输出debug级别的日志,其他请求仍然沿用error_log中配置的日志级别

    worker_rlimit_core size;                    限制core dump核心转储文件的大小

    working_directory  path;                    worker进程的工作目录,用于设置coredump文件的存储目录,需确保worker进程有权限向working_directory指定的目录写入文件

    include pathfile;                                 导入其他配置文件中的配置 ,pathfile可以是绝对路径 也可以是相对路径(相对于nginx.conf所在的目录)如

    include mime.types;

    include vhost/*.conf;

    参数值可以是一个明确的文件名,也可以是含有通配符*的文件名,同时可以一次嵌入多个配置文件

    pid  pathfile;                                       默认pid logs/nginx.pid;     需确保nginx有权在相应的目标中创建pid文件

    user username[ groupname];                默认 user nobody nobody;  设置master进程启动后,fork出的worker进程运行在哪个用户和用户组下,不设置用户组时,用户组与用户名相同

    worker_processes number;                  默认worker_processes 1 ;在master/worker运行方式下,定义worker进程的个数

    use [ kqueue|rtsig|epoll|/dev/poll|select|poll|eventport];          默认nginx会自动使用最合适的事件模型

    worker_connections number;               定义每个worker进程可以同时处理的最大连接数

     

    静态web服务器

    一个典型的静态web服务器还会包含多个server块和location块

    http {
            gzip on;
            upstream {
                    ...
             }
             ...
           
            server {
                        listen localhost:80;
                        ...
                        location /webstatic {
                                      if ...
                                          {
                                            ...
                                      }
                                      root opt/web/resource;
                                      ...
                         }
                         location ~* .(jpg|jpeg|png|jpe|gif)$ {
                                                                                  ...
                         }
           }
           server {
                      ...
           }
    }

    所有的http配置项都必须直属于 http块,server块,location块,upstream块或 if块等

    有些配置项可以任意地出现在某一个块中,有些配置项只能出现在特定的块中。

    静态的web服务器提供了许多功能: 虚拟主机与请求的分发,文件路径的定义,内存及磁盘资源的分配,网络连接的设置,MIME类型设置,客户端请求的限制,文件操作的优化,客户端请求的特殊处理。

    虚拟主机与请求的分发

      通常存在多个主机域名对应同一个IP地址,每个server块就是一个虚拟机,它只处理与之相对应的主机域名请求

    这样一台服务器上的nginx就能以不同的方式处理访问不同主机域名的http请求了

    server{

        listen address:port 

    默认为listen 80;         listen参数决定nginx如何监听端口,在listen后可以只加IP地址,端口或主机名 

    例:

    listen 127.0.0.1:8000;

    listen 127.0.0.1; 

    listen 8000;

    listen *:8000;

    listen localhost:8000;

    如果是IPV6地址,可以写成

    listen [::]:8000;

    listen [fe80::1];

    listen [:::a8c9:1234]:80;

    地址和端口后还可以加上其他参数,如:

    listen 43 default_serer ssl;

    listen 127.0.0.1 default_server accept_filter=dataready backlog=1024;

    default/default_server  :将所在server块作为整个web服务的默认server块,如果没有设置,则以第一个server块为默认server块。

                无法匹配配置文件中的任何主机域名的请求,会由默认server处理

  • 相关阅读:
    ubuntu 制做samba
    《Programming WPF》翻译 第4章 前言
    《Programming WPF》翻译 第4章 3.绑定到数据列表
    《Programming WPF》翻译 第4章 4.数据源
    《Programming WPF》翻译 第5章 6.触发器
    《Programming WPF》翻译 第4章 2.数据绑定
    《Programming WPF》翻译 第4章 1.不使用数据绑定
    《Programming WPF》翻译 第5章 7.控件模板
    《Programming WPF》翻译 第5章 8.我们进行到哪里了?
    《Programming WPF》翻译 第5章 5.数据模板和样式
  • 原文地址:https://www.cnblogs.com/Ting-light/p/11083573.html
Copyright © 2011-2022 走看看