美文网首页
Nginx安装及配置文件结构解析-马哥视频学习笔记

Nginx安装及配置文件结构解析-马哥视频学习笔记

作者: syp_xp | 来源:发表于2017-05-29 16:14 被阅读34次

nginx1.8.1安装配置:

./configure 
--prefix=/usr/local/nginx  \
--conf-path=/etc/nginx/nginx.conf  \
--user=nginx --group=nginx  \
--error-log-path=/var/log/nginx/error.log  \
--http-log-path=/var/log/nginx/access.log  \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-debug
make && make install

配置文件的组成部分:

- 主配置文件:nginx.conf
 - include conf.d/*.conf
 - /etc/nginx/conf.d/*.conf
- fastcgi配置文件:fastcgi_params,uwsgi_params

配置指令:

- args variable1 [variable2...]
- 支持变量
 - 内置变量 :由编译模块引入
 - 自定义变量 set variable value1
 - 变量引用 $variable

配置文件组织结构

main block
event{
 ...
}
http{
  ...
  server{
    ...
    server_name
    root
    alias
    location /url/{
    }
    ...
  }
  server{
  ...
  }
}

server:

  1.listen监听
    基于port:监听在不同的端口
    基于hostname:server_name指向不同的主机名
  2.listen
    listen address [:port] [default_server] [ssl] [http2] [spdy]
    listen port [default_server] [ssl] [http2] [spdy]
      default_server:设置默认虚拟主机,用于基于IP地址,或使用了任意不能对应于任何一个server的name所返回站点;
      ssl:用于限制只能通过ssl连接提供服务;
      spdy:在编译了spdy模块的情况下
      http2:http version 2;
  3.server_name name [...]:
      后可跟一个或多个主机名;名称还可以使用通配符和正则表达式~
        首先做精确匹配
        左侧通配符
        右侧通配符
        正则表达式
  
  9.alias
    只能用于location配置段,定义路径别名
    location /images/ {
      root /data/imags/;
    }
    location /iamges/ {
      alias /data/imgs/;
    }
    
    注意:
      root指令:给定的路径应该对应于location左边的'/'
        /images/test.jpg - > /datat/imgs/images/test.jpg
      alias指令:
        /images/test.jpg - > /data/imgs/test.jpg

  10.index
    index file ...;
    默认主页面
  11.error_page code ... [=response] url;
    error_page 404  /404.html
    error_page 404  =200 /404.html
  12.try_files file ...url;
       try_files file ... =code;
       尝试查找1至N-1个文件,第一个即为返回给请求者的资源,若找不到,择跳转至最后一个url(该url不能匹配至当前的location,否则会出现死循环)
  13.keepalive_timeout timeout [header_timeout];
    设定keepalive连接的超时时长;0表示禁止长连接;默认为75s;
  14.keepalive_requests number;
    在keepalive连接上所允许请求的最大资源数量;默认100
  15.keepalive_disable none | browser ... ;
    指明禁止为何种浏览器使用keepalive功能;
  16.send_timeout
    发送相应报文的超时时长,默认60s
  17.client_body_buffer_size size;
    接收客户请求报文body的缓冲区大小;默认为16k;超出此指定大小时,其将被移存于磁盘上
  18.client_body_temp_path path [level1 [level2 [level3]]]
    设定用于存储客户端请求body的临时存储路径及子目录结构和数量
    client_body_temp_path /var/tmp/client_body 2 2;
  19.limit_except METHOD {...}
    对指定范围之外的其他方法进行访问控制;
    limit_except GET {
      allow 172.16.0.0/16;
      deny all;
    }
  20.limit_rate speed;
    限制客户端每秒所能传输的字节数,默认为0表示无限制

文件操作优化相关的配置

  21. aio on|off
  22.directio size|off
    enable the use of the O_DIRECT flag,when reading files that are bigger than or equal to the specified size;
  23.open_file_cache off;
       open_file_cache max=N [inactive=time]
       nginx可以缓存以下三种信息:
          文件描述符、文件大小和最近一次修改时间
          打开的目录的结构
          没有找到的活着没有权限操作的文件的相关信息
      max=N 表示可缓存的最大条目上限,一旦达到上限,会使用LRU算法从缓存中删除最近最少使用到的缓存项;
      inactive=time 指定时间内未被访问的缓存项被删除
  24.open_file_cache_errors on|off
    是否缓存找不到其路径的文件、或没有权限访问的文件相关信息
  25.open_file_cache_valid time;
    每隔多久检查一次缓存中缓存项的有效性;默认为60s
  26.open_file_cache_min_users number;
    缓存项在非活动期限内最少应该被访问的次数

ngx_http_access_module 模块的配置,基于ip的访问控制

  27. allow address | CIDR | unix |all;
        deny address | CIDR | unix |all;
        应用上下文:http、server、location、limit_except

相关文章

网友评论

      本文标题:Nginx安装及配置文件结构解析-马哥视频学习笔记

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