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

    • 主配置文件说明(先将注释部分去掉:sed -ri ‘/^#|[[:space:]]+#/d’ /etc/nginx/nginx.conf)
    1)全局配置段
    1:指明运行worker进程的用户和组
    user nginx nginx;
     
    2:指明pid文件路径
    pid /var/run/nginx.pid;
     
    3:指明worker进程所能够打开的最大文件数(可以省略)
    worker_rlimit_nofile 1024
     
    4:worker的进程数,应该为CPU的核心数或核心数减一,如果是双核CPU,可以给2
    worker_processes 2;
     
    5:将nginx的worker进程,绑定在不同的CPU上, 如果分别绑定在第一颗和第二颗核心上,可以使用ps axo command,pid,psr 命令查看CPU的绑定情况
    worker_cpu_affinity 0001 0010;
     
    6:指定进程的nice值,nice值越小优先级越高
    worker_priority 0;
     
    7:指定以何种方式启动Nginx,默认是以daemon的方式启动
    daemon on
     
    8:指定是否使用master/worker模型启动nginx进程,默认是
    master_process on
     
    9:指定错误日志文件路径、日志级别
    error_log logs/error.log error;
     
     
    2)event配置段
     
    1:指定单个worker进程打开的最大socket连接数,默认为512,但是必须小于worker进程所能够打开的最大文件数
    worker_connections 512;
     
    2:指明处理并发连接请求时,使用的网络I/O处理方式,无需管理,linux自行判断
    use method;
     
    3:指明worker进程是否支持轮询响响应的新请求
    accept_mutex on;
     
    4:指明锁文件路径
    lock_file /var/lock/nginx.lock;
     
    3)http配置段
    1:指明mime类型,用于数据传输
    default_type text/plain;
    或 default_type application/octet-stream;
     
    2:指定是否启用sendfile功能,sendfile功能用于读写函数中减少拷贝,也就是linux的0拷贝
    sendfile on;
     
    3:指定保持连接的超时时长,0表示禁止使用长连接,默认为65秒
    keepalive_timeout 65;
     
    4:指定长连接上响应客户端请求的最大数量,默认为100
    keepalive_requests 100;
     
    5:指明向客户端发送响应报文的超时时长,如果客户端没有接受,那么就关闭连接
    send_timeout 60s;
     
    6:指明客户端请求报文的body部分的数据,设置缓冲区大小,超出16K大小会被存储在硬盘上
    client_body_buffer_size 16k;
     
    7:指定响应报文的传输速率,默认为0,不做限制
    limit_rate 0;
     
    8:指明启用AIO
    aio off;
     
    9:指定配置一个虚拟主机
    server { }
     
     
    4)server配置段
    1:指明socket的监听选项,有下面三种常用情况
    listen address[:port] [default_server] [ssl] [backlog=number] [rcvbuf=size] [sndbuf=size]
    listen port [default_server] [ssl]
    listen unix:path [default_server] [ssl]
     
    port:指明端口
    default_server:指定这个虚拟主机是默认的虚拟主机
    ssl:限制只能通过ssl连接提供服务
    backlog:后援队列的长度
    rcvbuf:接受缓冲大小
    sndbuf:发送缓冲大小
     
     
    2:指明当前server的主机名,主机名可以并排写,有四种定义主机名的格式,但是优先级有区别
    server_name www.uplooking.com
    精确定义主机名,例如:www.uplooking.com 优先级第一
    左通配定义主机名:例如:*.uplooking.com 优先级第二
    右通配定义主机名:例如:www.uplooking.* 优先级第三
    使用正则表达式匹配主机名:例如:~^.*/.uplooking/..*$ 优先级第四
     
    3:指明站点路径,配置文件默认是相对路径,可以写绝对路径/usr/local/nginx/html
    root html;
     
    4:在keepalived模式下的连接是否启用TCP_NODELAY选项,TCP有一个默认的delay优化机制,可以在这里将它关闭
    tcp_nodelay on
     
    5:指明默认的首页文件
    index index.html index.htm;
     
    6:指定错误页面重定向
    error_page 404 =200 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    root html;
    }
     
    7:指定匹配的URL,通过用户输入的URL来匹配不同的location,匹配到了,就按照location内部的设置进行响应
    location [ = | ~ | ~* | ^~ ] uri {
     
    }
     
    = :URI精确匹配 ,优先级第一
    ^~ :对于URI的左边进行匹配,不区分字符大小写,优先级第二
    ~ :模式匹配,正则表达式模式匹配,匹配时候区分大小写,优先级第三
    ~* :模式匹配,正则表达式模式匹配,匹配时候不区分大小写 ,优先级第三
    不带以上四种符号的URI的优先级是第四
     
    5)location配置段
    1:指定路径别名(要与root指令区别开来)
    location /i/ {
    alias /data/w3/images/;
    }
    请求:http://www.uplooking.com/i/index.html
    资源文件:/data/w3/images/index.html
     
     
    2:指定访问控制,除了GET方法以外,例如:POST方法,必须是192.168.10.10主机,才能够被响应
    limit_except GET {
    allow 192.168.10.10;
    deny all;
    }
    • Nginx缓存指令
    # 指定缓存开启,且最大的文件缓存为1000,非活动的缓存时长为20秒
    open_file_cache max=1000 inactive=20s;
     
    # 指定缓存有效性的,默认是60秒
    open_file_cache_valid 30s;
     
    # 缓存对象被访问的次数小于2,则被认为是非活动对象
    open_file_cache_min_uses 2;
     
    # 是否缓存错误信息
    open_file_cache_errors on;
    • http段 访问控制模块 ngx_http_access_module
    location / {
    deny 192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny all;
    }
    • http段 访问认证模块 ngx_http_auth_basic_module
    创建basic认证文件
    htpasswd -c /etc/nginx/.uplooking_password uplooking
     
    location /uplooking/ {
    auth_basic "uplooking Place;"
    auth_basic_user_file /etc/nginx/.uplooking_password;
    }
    • http段 基本状态模块 ngx_http_stub_status_module
    # 请用统计功能
    stub_status;
  • 相关阅读:
    Scrapy学习-7-数据存储至数据库
    Scrapy学习-6-JSON数据处理
    Scrapy学习-5-下载图片实例
    Scrapy学习-4-Items类&Pipelines类
    Scrapy学习-3-Request回调巧用
    Scrapy学习-2-xpath&css使用
    iTunes.exe 在win7系统中运行出错解决办法
    [转]手机浏览器的User-Agent汇总
    apple mobile device服务无法启动,错误1053 解决
    [转]EF 4.1 Code First
  • 原文地址:https://www.cnblogs.com/liu1026/p/7537942.html
Copyright © 2011-2022 走看看