nginx配置文件解析

nginx配置在conf/nginx.conf中,主要有全局,http,server,location块配置 

user  nobody;##运行用户为nobody用户
worker_processes  3;#工作进程数
worker_cpu_affinity 01 10 10;#将工作进程放入CPU的哪一核,本计算机有2核,进程1放入cpu0核,进程2放入cpu1核,进程3放入cpu1核
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;#info信息等级的错误消息,有debug,info,notice,warn,error,crit,alter,emerg的从高到低的等级,debug等级的信息最为详细

pid        logs/nginx.pid;#主进程pid保存的文件


events {
    use epoll;#使用epoll事件驱动模型,只能在events中配置
    epoll_events 512;#设置epoll模型与内核传递事件的数量
#work_rlimit_sigpending 1024;#该配置用于rtsig配置信号队列长度,每个工作进程有独立的信号队列,当长度超出时,nginx调用poll模型进行处理未处理的请求
    worker_connections  20490;##每一个工作进程同时开启的最大连接数
    accept_mutex on;#设置进程接收客户连接序列化,接收互斥,一个连接到来时全部睡眠进程不会都被唤醒去争夺连接,只能在events块中配置
    multi_accept on;#设置工作进程同时可以接收多个网络连接,默认为off,只能在events块中配置
}

stream {        #代理TCP/UDP流量
   upstream mysql {
      server 127.0.0.1:3306;
    }
    server {
      listen 6666;#代理tcp流量,如果是listen 6666 udp;则代表udp流量
      proxy_pass mysql;
      }
}


http {
    include       mime.types;#定义媒体类型与文件后缀的映射,客户端发送文件请求,服务器根据请求文件设置响应的Content-type,客户端根据其展示文件的内容
    default_type  application/octet-stream;#默认的媒体类型,没有文件名后缀时设置的Content-type
                                           #媒体类型可定义在http,server,location块中
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';  #生成的日志格式,服务器自带了内置变量,只能配置在http块中

    access_log  logs/access.log  main;#配置接入日志,可配置在http,server,location块中

    sendfile        on;#启动高效传输文件的方式,直接在磁盘和tcp_socket之间传输,不用经过内存。不开启的话会经过内存中转
    sendfile_max_chunk 128k;#设置每次sendfile传输的数据最大量,k代表kB,m代表MB,sendfile可在http,server,location块中定义
    tcp_nopush     on;#设置tcp在接收到数据包时不直接发送出去,而是等到数据包多的时候发送出去,有助于解决网络拥塞,非常时候ftp等
#   tcp_nodelay    on;#设置不延迟的tcp传输,默认是延迟的。

    #keepalive_timeout  0;
    keepalive_timeout  65;#设置连接保持的超时时间,超过这一时间就断开,秒为单位,可在http,server,location块中定义
    client_header_buffer_size 4k;#设置客户端请求头部缓冲区大小,用来缓冲头部信息,大小可有linux命令getconf PAGESIZE来定
    keepalive_requests 3000;#设置单一连接最大发送请求数,可在http,server,location块中定义
    gzip  on;#开启chunk编码动态压缩功能,压缩功能可在http,server,location块中定义
    gzip_buffers 32 4k;#配置压缩时使用的内存空间,第一个数字是内存页数,第二个数字是内存页一页的大小
    gzip_comp_level 2;#配置压缩级别,数字越大级别越高,但压缩速率变慢
    gzip_disable "MSIE[1-6]\.";#配置UA是IE6以下的不使用压缩
    gzip_http_version 1.1;#配置使用压缩的最低http协议版本
    gzip_min_length 1024;#单位为B,配置使用压缩的最小响应数据长度,动态压缩之后Content-length长度可能没有
#gzip_proxied any;#配置后端响应数据全部实行压缩
    gzip_types text/plain application/x-javascript text/css;#配置压缩的MIME媒体类型
    gzip_vary on;#启用压缩标识,使用压缩时向客户端发送“Vary: Accept-Encoding”头域
#gzip_static on;#配置使用预压缩的静态压缩方式,需要编译模块,默认是没有此功能的
#    gunzip_static on;#配置客户端不支持GZIP时不使用压缩,返回解压缩的数据,如果客户端支持则继续使用压缩的功能,默认没有此模块
#    gunzip_buffers 32 4k;#配置解压缩的内存缓存空间
    send_timeout 60;#设置在两次客户端请求之间,服务器发送响应没有等到客户端ack的超时时间
    upstream tomcat
    {
        server 127.0.0.1:8080 weight=5;
        server 127.0.0.1:8081 weight=10;
    }

    server {
        set $libo 1;
        listen       80;#配置网络侦听,单一80等同与*:80,可以针对某一本地ip例如192.168.1.1:80,不带端口时默认是80
#        listen  *:8080 default_server backlog=1024 bind;default_server代表找不到主机时用此server块为默认主机,bind代表一个ip使用一个bind()函数处理,默认是多个用一个函数。backlog表示listen()函数最多挂起的网络连接
        server_name  www.libo.com libo.com;#虚拟主机名可以使用通配符和正则
#       server_name  *.libo.com www.libo.*;#使用通配符
#       server_name ~^www\d+\.libo.com$;#~符号代表使用正则
#当有多个server_name匹配成功时,采用优先级较高的,优先级相同采用首次匹配的。优先级由高到低依次是准确匹配>开始时通配符匹配>结束时通配符匹配>正则匹配
#       server_name ~^www\.(.+)\.com$;#可以捕获()中的内容,第一个()的变量为$1,第二个()的变量为$2,变量可用于本块中的上下文
        charset utf-8;#设置采用何种字符编码发送response消息给客户端

        #access_log  logs/host.access.log  main;
#        rewrite /1  /libo/ redirect;
        location / {               #location字段格式为location [ = | ~ | ~* | ^~ ] uri { ... },uri有标准uri和正则uri,当不带可选项=或者^~时,有多个location时匹配顺序如下,先找到匹配的所有标准uri并记录匹配度最高的,之后找正则uri匹配,找>到的第一个就匹配结束搜索,如果没有找到就用刚找到的标准uri匹配度最高的。当带可选项=或者^~时,=代表严格匹配标准uri,匹配后直接使用此uri处理请求,^~代表找到标准uri匹配度最高的uri之后直接使用此uri,不用进行后续的匹配。正则表达式中~代表区分>大小写,~*代表不区分大小写。
            root   html;#代表根路径,如请求/libo/index.html,会到html/libo/index.html找资源,可在http,server,location块中配置
#           alias  /data/node1/;#代表改变匹配的uri,将/改为/data/node1/,并将查找资源的路径也改为/data/node1/,注意目录一定带/,例如/data/node1/,只能在location块中配置
#            deny 6.6.8.14;#禁止指定ip访问
#            allow 192.168.1.0/24;#允许指定网段访问
#            deny all;#禁止所有ip访问
#ip访问权限从上往下匹配,匹配之后不进行后续匹配
#         if ($libo) {
                 rewrite ^/1 /libo/ last;
                 rewrite ^/libo /lisi/ break;
#                 break;
#                 return 404;
#                 }

#           auth_basic "auth";#配置基于密码的访问权限,后接验证时的指示信息
#           auth_basic_user_file /data/nginx/password;#绝对路径
#密码文件格式如下
#libo:1234
#lisi:1235
#密码可以使用crypt()函数加密的密码,运行以下命令即可htpasswd -c -d /data/nginx/password username。htpasswd命令可以使用yum install -y httpd-tools安装
            index  index.html index.htm;#默认的索引文件,依次查找,顺序匹配,前面优先级高
        }
        location /libo/ {
               rewrite /libo /lisi1/ break;
               root html;
               index index.html;
        }
        location ~ /* {
               proxy_pass http://tomcat;
               }

        error_page  404              /404.html;#配置错误页,/404.html是指到html/404.html中找资源
        error_page 403               http://www.otherlibo.com/403.html;#本地没权限,是指到其它服务器找资源

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {  #上面错误页重定向到html目录中找资源
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值