zoukankan      html  css  js  c++  java
  • nginx配置详解

    nginx.conf配置详解:

    全局配置:

    user  nginx;        #运行用户

    worker_processes 4;        #工作进程数,通常等于CPU数量或者核心数(-1)

    error_log /var/logs/nginx/error.log crit;        #错误日志位置和级别

    pid /var/run/nginx.pid;        #pid(进程标识符)存放位置

    worker_rlimit_nofile 51200;        #一个worker进程打开的最大文件数

    #这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
    #现在在Linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。
    #这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。

     
    events段:控制nginx性能
    events
              {
                      use epoll;        #epoll的I/O 模型
                      worker_connections 51200;        #每个worker进程的最大链接数,默认为1024
              }

     
    http端:http请求和处理
     
    http
              {
                      include       mime.types;        #设定mime类型,类型由mime.type文件定义
                      default_type  application/octet-stream;        #属于nginx的核心模块命令,这里默认类型为二进制流,也就是当文件类型未定义时使用这种方式
                      client_header_buffer_size 32k;        #客户端请求头部的缓冲区大小
                      large_client_header_buffers 4 32k;      #用来指定客户端请求中较大的消息头的缓存最大数量和大小, 4为个数,32k为大小
                      client_max_body_size 50m;        #设定允许客户端请求的最大单个文件字节数
                      sendfile on;        #开启sendfile
                      server_tokens off;        #隐藏版本信息
                      tcp_nopush     on;        #在一个数据包里发送所有头文件,而不一个接一个的发送
                      keepalive_timeout 120;        #keepalive超时时间
                      tcp_nodelay on;        #不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性
                      gzip on;      #开启文件压缩
                      gzip_min_length  1k;       #要指定要压缩页面的最小字节数,页面字节数从header头的Content_Length中获取。默认值为0字节,不管页面多大都进行压缩

         gzip_buffers 4 16k;        #表示申请4个单位为16kb的内存作为压缩结果流缓存,默认是申请与原始数据大小相同的内存空间来存储GZIP的压缩效果
         gzip_http_version 1.0;        #用于设置识别HTTP协议版本,默认是1,1

         gzip_comp_level 3;        #设置压缩比
                      gzip_types       text/plain application/x-javascript text/css application/xml;      #用来指定压缩的类型,无论是否指定,"text/html"类型总是被压缩
                      log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
                             '$status $body_bytes_sent "$http_referer" '
                             '"$http_user_agent" $http_x_forwarded_for';
     
    #日志格式设置。
    #$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
    #$remote_user:用来记录客户端用户名称;
    #$time_local: 用来记录访问时间与时区;
    #$request: 用来记录请求的url与http协议;
    #$status: 用来记录请求状态;成功是200,
    #$body_bytes_sent :记录发送给客户端文件主体内容大小;
    #$http_referer:用来记录从那个页面链接访问过来的;
    #$http_user_agent:记录客户浏览器的相关信息;
     
     
      include host/*.host;        #导入其他配置文件
      }

    host目录下可以放各个站点的server
    vim ./host/www.xxx.com
     server
    {
             listen 80;        #监听80端口
             server_name www.xxx.com;      #域名
             root /data/web/wordpress;        #根目录
             index index.php index.html;        #默认首页
             error_page 404 http://promotion.alicdn.com/help/oss/error.html;        #404页面,这里是淘宝的公益页面
             access_log /data/logs/nginx/www.access.log;        #定义该站点的访问日志存放位置;日志格式在http端已经定义过了
       charset utf-8;        #设置网页的默认编码格式
            location ~ .php$        #定义一个location,以.php结尾的文件转交给PHP解析
       {
                    include fastcgi-php5.5.conf;
            }
     
      location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ 
      {
        root  /data/web/image.xxx.com;
        expires  30d;    #用来指定静态文件的过期时间,这里是30天
      }
    }

    这样配置比较简洁;
  • 相关阅读:
    创业成功关键在于专注“核心竞争力”(外包有时候能大大提高开发周期)
    华为为什么不设事业部制?
    雷军三年花10亿造“芯” 营销还是“不服气”(外界对雷军做芯片的三种猜测,以及雷军本人的看法)
    Windows完成端口与猪肉佬
    分布式锁实现
    Quartz(GUI)图形界面程序----Quartz Web
    Quartz.net开源作业调度
    js 闭包
    Nancy
    MVC—WebAPI(调用、授权)
  • 原文地址:https://www.cnblogs.com/52py/p/7420690.html
Copyright © 2011-2022 走看看