zoukankan      html  css  js  c++  java
  • nginx学习-超详细nginx配置文件

    一.nginx的配置文件


    user    work work;    //运行nginx的用户(组)
    worker_processes  auto;   //work进程数1个主进程
    pid        /opt/soft/nginx/run/nginx.pid; //pid存放位置
    error_log  /opt/log/nginx/localhost/error.log error; //全局nginx运行时 error  info,notice,warn,error,crit,alert,emerg//所有指定的文件,运行nginx进程的用户必须有写权限,否则报错
    worker_rlimit_nofile 65535;#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
    include  /opt/soft/nginx/conf.d/*.conf;   //引入配置文件
    events {                //负责网络连接配置 ,比较影响性能
        accept_mutex   on;   //防止多个进程对连接的争抢  默认开启,(影响性能)
        multi_accept  on;  //配置是否允许一个worker_process一次同时接收多个网络连接   默认off 不允许
        use epoll;   //事件驱动模型  select,poll,kqueue,epoll,rtsig,有些模块需手动安装
        worker_connections  1024; //最大连接数允许每个worker_process同时开启的最大连接数(包括所有可能的连接数),该值不能大于操作系统支持打开的最大文件句柄数
    }
    http {
        server_tokens off;//隐藏nginx的版本号,并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的。
        server_tag off;//隐藏nginx的信息
        include       mime.types; //前端请求的资源类型
        default_type  application/octet-stream;  //处理前端请求默认的类型
        charset utf-8;
        # nginx log format.
        log_format  main  '$http_host $remote_addr - $remote_user [$time_local] '

          '$scheme "$request" $status $bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for" "$gzip_ratio" $request_time '
                          '$upstream_addr $upstream_status $upstream_response_time'; //服务日志的格式
      access_log /opt/log/nginx/localhost/access.log main;  //服务日志路径,格式选择
      error_log  /opt/log/nginx/localhost/error.log error;
      ssl_session_cache   shared:SSL:10m;
      ssl_session_timeout  10m;
      autoindex on; #开启目录列表访问,合适下载服务器,默认关闭。
      sendfile        on;   //开启sendfile高效传输文件的模式  默认关闭
      sendfile_max_chunk  512k;   //设置每个worker_process传输文件的最大值  默认0   无限制
       tcp_nopush     on;//tcp_nopush需要和sendfile一起使用,作用是:让HTTP响应头和sendfile()发送的数据混合为一个数据包发送出去。
       tcp_nodelay    on;//用于覆盖Nagle's算法.必须开启keepalive才能使用这个指令否则不能使用
       keepalive_timeout  15s;    //配置客户端连接超时时间 默认75s
       keepalive_requests  60;  //建立某连接允许发送的请求次数  默认100
       server_names_hash_max_size 512;//服务器名字的hash表大小
       server_names_hash_bucket_size 512;#服务器名字的hash表大小和上个值保持一致
       client_header_buffer_size 4k;#上传文件大小限制
       large_client_header_buffers 4 256k; #设定请求缓
       client_header_timeout  10;//请求头的超时时间
     // allow   192.33.33.3;  设置允许访问nginx的Ip 设置多个Ip使用多次allow   all 代表所有 可配置在http    ,server,location
     //deny  192.33.33.3;  禁止访问的IP   
     //auth_basic   string|off ;  开启密码访问nginx
     //auth_basic_user_file  file;  设置密码访问的密码文件的绝对路径
        gzip on;//开启压缩功能,默认off
        gzip_min_length 1k;//大于1k才压缩
        gzip_buffers     16   8k;//压缩申请的空间个数和大小
        gzip_comp_level 4;//压缩等级 1-9   9代表压缩程度最高
        gzip_http_version 1.0;//1  以上版本使用压缩,默认1.1
        gzip_types text/plain application/x-javascript text/css application/xml text/javascript     image/gif image/png;//根据类型压缩
        gzip_vary on;//告知本不支持gzip压缩的浏览器,数据压缩了
        map_hash_max_size 102400;
        map_hash_bucket_size  128;
        fastcgi_intercept_errors on;//开启错误页面跳转,默认关闭
    server {
           listen  80;  //配置网络监听  可监听IP,端口
           #listen 443 ssl ;//配置https
           server_name  uums.58qf.com;   虚拟主机名称,可多个  空格隔开 支持正则
           #add_header Strict-Transport-Security "max-age=31536000; includeSubDomains"; #HSTS强制使用HTTPS
           error_page  500 404 http://m.58qf.com/error.html;  //设置错误页面 /404.html
          //error_page 404  /404.html;// 指安装路径下的/html/404.html

    //下面的配置指根路径下的/usr/html/404.html;                
            //location  /404.html
            //{
            //    root  /usr/html/            
            //}
            //
         access_log /opt/log/nginx/uums.58qf.com/uums.**.com_access.log main;
          error_log /opt/log/nginx/uums.58qf.com/uums.**.com_error.log error;
     location / {   //支持正则
              proxy_next_upstream http_502  error timeout invalid_header;
              proxy_set_header Host $host;//如果客户端发过来的请求的header中有’HOST’这个字段时,$http_host和$host都是原始的’HOST’字段 ,没有使用$host
              poxry_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;  //获取HTTP的请求端真实的IP      
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-Proto  $scheme;
              proxy_pass http://test;
         }
    upstream test{
        ip_hash;
        server  172.16.11.120:9014  weight=1 max_fails=1 fail_timeout=10s;
        server  172.16.11.120:9014   weight=2 max_fails=1 fail_timeout=10s;
    }







  • 相关阅读:
    产品经理的创新思维
    大型互联网网站架构心得之二:并、换和其它(转)
    访问IIS元数据库失败解决方法(转)
    (转)SQL Server 假执行,预执行
    从LiveJournal后台发展看 大型网站系统架构以及性能优化方法(转)
    浏览器并发连接数
    转:Session服务器配置指南与使用经验
    转:安装IIS无法找到zClientm.exe文件的解决办法
    使用开源软件,设计高性能可扩展互动网站
    大型互联网网站架构心得之一:分(转)
  • 原文地址:https://www.cnblogs.com/2nao/p/8031866.html
Copyright © 2011-2022 走看看