Nginx配置文件(二)

Nginx的全部配置文件都在 /etc/nginx  目录下面nginx.conf
html

    主要有main配置段 ,也叫核心配置段,主配置段
node

    还有http和mail
nginx

    

    配置指令以分号结尾(;)并且语法区分大小写web

    eg: directive value1 [value2 ...];正则表达式

    并且还支持使用变量浏览器

        模块内置变量 :变量自动赋值   缓存

        自定义变量:set var_name value
服务器


    主配置段的指令的类别:
网络

        用于调试,定位问题(生产中不用开启)
并发

        正常运行,必备的配置

        优化性能的配置

        事件相关的配置(一个事件响应多个请求,master指向root,worker 指向的Nginx。)

    

           
        正常运行的必备配置:
            一、user USERNAME [GROUPNAME];
                指定运行worker进程的用户 和组,例如:
                user nginx nginx;s
                
            二、pid /path/to/pid_file;
                指定nginx的pid文件;
                
            三、worker_rlimit_nofile #;
                指定一个worker进程所可以打开的最大文件句柄数;
                
            四、worker_rlimit_sigpending #;
                指定每一个用户可以发往worker的信号的数量;
                
        优化性能相关的配置:
            一、worker_processes #:
                worker线程的个数;一般应该为物理CPU核心个数减1;
                启动的work线程的个数。
            二、worker_cpu_affinity cpumask ...;
                绑定worker进程至指定的CPU上;
                    CPUMASK
                        0001
                        0010
                        0100
                        1000
                    例如:
                        worker_cpu_affinity 00000001 00000010 00000100;
                        
            三、timer_resolution t;
                gettimeofday();
                
            四、worker_priority nice;
                -20, 19
                
        事件相关的配置:
            一、accept_mutex [on|off]
                内部调用用户 请求至各worker时用的负载均衡锁;打开时表示能让多个worker轮流                   地、序列化地与响应新请求;
                
            二、lock_file /path/to/lock_file;
            
            三、accept_mutex_delay #ms;
                
            四、use [epoll|rgsig|select|poll];
                定义使用的事件模型;建议让Nginx自动选择;
                
            五、worker_connections #;
                每一个worker进程所可以响应的最大并发请求数;
                
        用于调试、定位问题:
            一、daemon [off|on]
                是否以守护进程方式启动nginx;
                
            二、master_process on|off;
                是否以master/worker模型来运行nginx;
                
            三、error_log /path/to/error_log level;
                错误日志文件及其级别;出于调试的目的,能够使用debug级别,但此级别只有在编译                 nginx时使用了--with-debug选项才有效;

        

     Nginx

        main配置段    http {    }        http配置:http core 配置一个静态web服务器        ngx_http_core_module                配置框架:        http {            upstream {                ...            }                        server {                listen IP:PORT;                # 虚拟主机                location /URL {                    if ...{                        ...                    }                    root "/path/to/somewhere";                    ...                }            }            server {                ,,.            }        }                    注意:与http配置相关的指令必须放在http、server、location、upstream、if块中;                    虚拟主机相关的配置:            一、server {}                定义一个虚拟主机;                            二、listen                监听的端口                完整格式 :listen address[:port] [default_server] [ssl] [spdy] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];                                listen address[:port] [default_server] ssl                                 backlog=number: 指明TCP协议backlog队列的大小。默认为-1,表示不设置;                rcvbuf=size:设定监听句柄的SO_RCVBUF参数;                                例如:                    listen 172.16.100.8:8080                                三、server_name name [...];                后可跟多个主机名;名称还能够使用通配符和正则表达式(~);                                    (1) 先作精确匹配;www.magedu.com:                 (2) 左侧通配符匹配,例如:*.magedu.com;                 (3) 右侧通配符匹配,例如:www.*;                (4) 正则表达式匹配,例如: ~^.*\.magedu\.com$                (5) default_server                            四、location [=|~|~*|^~] /uri {...}                location @name                功能:容许根据用户请求的URI来匹配定义的各location,匹配到时,此请求将被相应                         的location块中的配置所处理;                                    =: 精确匹配检查;                    ~: 正则表达式模式匹配,区分字符大小写;                    ~*:正则表达式模式 匹配,不区分字符大小写;                    ^~:URI的前半部分匹配,不检查正则表达式;                                    匹配优先级:精确匹配(=)、^~、~和~*、由不带符号的URL进行左侧匹配;                                五、root                设置web资源路径映射;用于指明请求的URL所对应的文档的根目录路径;                                location /p_w_picpaths/ {                    root "/web/imgs/";                }                            六、alias path                用于location配置段,定义路径别名                                 location /p_w_picpaths/ {                    alias /www/pictures/;                }                                注意:root表示指明路径为对应location的“ /” URL;alias表示路径映射,即                    location中的URL是相对于alias所指明的路径而言;                            七、index file                默认主页面                    index index.html;                                 八、error_page code [...] [=code] URI | @name                根据http状态码重定向错误页面                error_page  404   /404.html                                =[code]: 以指定的响应码进行响应;省略code表示以新资源的响应码为响应码;                            九、try_files                try_files path1[,path2,...] URI                         网络链接相关的配置:            一、keepalive_timeout time;                保持链接的超时时长,默认为75s;                            二、keepalive_requests #;                在一次保持链接上容许承载最大资源请求数;                            三、keepalive_disable [msie6|safari|none]                为指定类型的浏览器禁用长链接;                            四、tcp_nodelay on|off                对长链接是否使用TCP_NODELAY选项;                            五、client_header_timeout time;                读取http请求报文首部的超时时长;                            六、client_body_timeout time;                读取http请求报文body部分的超时时长;                            七、send_timeout time;                发送响应报文的超时时长;                        对客户端请求进行限制:            一、limit_except METHOD {...}                指定对范围以外的其它方法的访问控制;                                limit_except GET {                    allow 172.16.0.0/16;                    deny all;                }                            二、client_body_max_size SIZE;                限制请求报文中body部分的上限;经过检测请求报文首部中的"Content_Length"来判                  定;                            三、limit_rate speed;                    限制客户端每秒种传输的字节数,默认为0,表示无限制;                        对内存或磁盘资源进行分配            一、client_body_in_file_only on|clean|off;                请求报文的body部分是否可暂存于磁盘;on表示容许,而且即便请求结束,也不会删                  除暂存的内容;clean表示会删除;off不容许暂存;                             二、client_body_in_single_buffer on|off                             三、client_body_buffer_size size;                        四、client_body_temp_path DIR [level1 [level2 [level3 [level4]]]]                                例如:client_body_temp_path /var/tmp/nginx/client  1 2                            五、client_header_buffer_size size:                    MIME类型相关的配置:                        一、types {}                定义MIME types至文件的扩展名;                    types {                        text/html .html;                        p_w_picpath/jpeg  .jpg;                    }                                二、default_type MIME-TYPE;                    文件操做优化相关的配置:            一、sendfile on|off;                         二、aio on|off;                        三、directio size|off;                是否使用O_DIRECT选项去请求读取文件;与sendfile功能互斥;                            四、open_file_cache max=N[inactive=time] | off;                nginx能够缓存如下三种信息:                    (1) 文件句柄、文件大小和最近一次修改时间;                    (2) 打开目录的目录结构;                    (3) 没有找到的或者没有权限操做的文件的相关信息;                                    max=N表示可缓存的最大条目上限;一旦到达上限,则会使用LRU从缓存中删除最近最                  少使用的条目;                                inactive=time: 在inactive指定的时长内没有被访问过的缓存条目就会淘汰;                            五、open_file_cache_errors on|off;                是否缓存在文件缓存中缓存打开文件时出现找不到路径,没有权限等的错误信息;                            六、open_file_cache_min_uses time;                每隔多久检查一次缓存中缓存条目的有效性;默认60s;                        重点关注:server{}, location{}, listen, server_name, root, alias,                                    keepalive_timeout, keepalive_requests, error_page            基于IP的访问控制:        http, server, location            allow, deny                基于用户的basic认证配置:        auth_basic        auth_basic_user_file             htpasswd命令建立用户帐号文件;                基于gzip实现响应报文压缩:            定制响应首部        add_header name value [always];        expires            定制访问日志        log_format        access_log                     定制出与httpd的combined格式相同的日志内容;                定义合法引用:        valid_referers none | blocked | server_names | string ...;        if ($invalid_referer) {            return 403        }            URL rewrite: URL地址重写        rewrite regex replacement [flag];            last            break            redirect            permanent                if (condition) {            ...        }                

相关文章
相关标签/搜索