一、nginx有很多参数可以配置在http、server、location块中,这三者的区别如下,以client_max_body_size举例:
  三者到区别是:
    http{}中控制着所有nginx收到的请求。
    而报文大小限制设置在server{}中,则控制该server收到的请求报文大小。
    同理,如果配置在location中,则报文大小限制,只对匹配了location 路由规则的请求生效。
  可以选择在http{ }中设置:client_max_body_size 20m;
  也可以选择在server{ }中设置:client_max_body_size 20m;
  还可以选择在location{ }中设置:client_max_body_size 20m;

二·、
  #配置worker进程运行用户(需要创建worker用户,创建命令 /usr/sbin/groupadd www /usr/sbin/useradd -g www www)
  user nobody;

  #配置工作进程数目,根据硬件调整,通常等于CPU数量或者2倍于CPU数量
  worker_processes auto;

  #Nginx默认没有开启利用多核CPU,我们可以通过增加worker_cpu_affinity配置参数来充分利用多核CPU。#CPU是任务处理,计算最关键的资源,CPU核越多,性能就越好。
  #worker_processes auto和worker_cpu_affinity auto表示启动的worker process进程数量是cpu个数,且均匀绑定到不同的cpu核上。
  #这两个参数配置成功的标志是:每个cpu的使用率基本都是一致的。
  #生产情况下,我们一般分配专门机器跑nginx,且只跑nginx,从而最大程度上利用nginx自身高效性和现代cpu的多核高效性。
  worker_cpu_affinity auto;

  #配置全局错误日志及类型,[debug | info | notice | warn | error | crit],默认是error
  error_log /data/hpy/logs/nginx/error.log notice;

  #配置进程pid文件
  pid logs/nginx.pid;

  #用于绑定worker进程和CPU。一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。 Linux内核2.4以上可用
  worker_rlimit_nofile 65535;

 

#配置工作模式和连接数

events {
  #accept_mutex是Nginx的负载均衡锁,accept_mutex这把锁可以让多个worker进程轮流地、序列化地与新的客户端建立TCP连接。
  #当某一个worker进程建立的连接数量达到worker_connections配置的最大连接数的7/8时,会大大地减小该worker进程试图建立新TCP连接的机会,以此实现所有worker进程之上处理的客户端请求数尽量接近。
  #accept锁默认是打开的,如果关闭它,那么建立TCP连接的耗时会更短,但worker进程之间的负载会非常不均衡,因此不建议关闭它。
  #设置网路连接序列化,防止惊群现象发生,默认为on(惊群现象:一个网路连接到来,多个睡眠的进程被同事叫醒,但只有一个进程能获得链接,这样会影响系统性能。)
  #accept_mutex on;


  #accept锁可能需要这个lock文件,如果accept锁关闭,lock_file配置完全不生效。如果打开了accept锁,并且由于编译程序、操作系统架构等因素导致Nginx不支持原子锁,这时才会用文件锁实现accept锁,这样lock_file指定的lock文件才会生效。
  #注意 在基于i386、AMD64、Sparc64、PPC64体系架构的操作系统上,若使用GCC、Intel C++ 、SunPro C++编译器来编译Nginx,则可以肯定这时的Nginx是支持原子锁的,因为Nginx会利用CPU的特性并用汇编语言来实现它。这时的lock_file配置是没有意义的。
  #lock_file logs/nginx.lock;

  #设置一个进程是否同时接受多个网络连接,默认为off
  #multi_accept on;


  #是个事件模块指令,用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。
  #其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。
  #对于Linux系统,epoll工作模式是首选。epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
  use epoll;


  #也是个事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024。最大客户端连接数由worker_processes和worker_connections决定,即Max_client=worker_processes*worker_connections。
  #在作为反向代理时,max_clients变为:max_clients = worker_processes * worker_connections/4。
  #进程的最大连接数受Linux系统进程的最大打开文件数限制,在执行操作系统命令“ulimit -n 65536”后worker_connections的设置才能生效
  worker_connections 65535;
}

 

#配置http服务器,利用它的反向代理功能提供负载均衡支持
http {

  #配置nginx支持哪些多媒体类型,可以在conf/mime.types查看支持哪些多媒体类型。是个主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度。类似于Apache中的include方法。
  #include配置项可以将其他配置文件嵌入到当前的nginx.conf文件中,它的参数既可以是绝对路径,也可以是相对路径(相对于Nginx的配置目录,即nginx.conf所在的目录),例如:
  # include mime.types;
  # include vhost/*.conf;
  #可以看到,参数的值可以是一个明确的文件名,也可以是含有通配符*的文件名,同时可以一次嵌入多个配置文件。
  include mime.types;
  #默认文件类型。属于HTTP核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式,例如在没有配置PHP环境时,Nginx是不予解析的,此时,用浏览器访问PHP文件就会出现下载窗口。
  default_type application/octet-stream;

  #默认编码
  charset utf-8;

  #服务器名称哈希表的最大值(默认512)[hash%size]
  server_names_hash_max_size 1024;
  #服务器名字的hash表大小
  server_names_hash_bucket_size 128;
  #用来设置允许客户端请求的最大的单个文件字节数;
  client_max_body_size 10m;
  #用于指定来自客户端请求头的headerbuffer大小。对于大多数请求,1K的缓冲区大小已经足够,如果自定义了消息头或有更大的Cookie,可以增加缓冲区大小。这里设置为32K;
  client_header_buffer_size 32k;
  #设置客户端连接保持活动的超时时间。在超过这个时间之后,服务器会关闭该连接;
  #长连接超时时间,单位是秒
  keepalive_timeout 60;

  #keepalive_requests指令用于设置一个keep-alive连接上可以服务的请求的最大数量,当最大请求数量达到时,连接被关闭。
  #默认是100。
  #这个参数的真实含义:
  # 是指一个keep alive建立之后,nginx就会为这个连接设置一个计数器,记录这个keep alive的长连接上已经接收并处理的客户端请求的数量。
  # 如果达到这个参数设置的最大值时,则nginx会强行关闭这个长连接,逼迫客户端不得不重新建立新的长连接。
  #大多数情况下当QPS(每秒请求数)不是很高时,默认值100凑合够用。但是,对于一些QPS比较高(比如超过10000QPS,甚至达到30000,50000甚至更高) 的场景,默认的100就显得太低。
  #简单计算一下,QPS=10000时,客户端每秒发送10000个请求(通常建立有多个长连接),每个连接只能最多跑100次请求。
  # 意味着平均每秒钟就会有100个长连接因此被nginx关闭。同样意味着为了保持QPS,客户端不得不每秒中重新新建100个连接。
  # 因此,就会发现有大量的TIME_WAIT的socket连接(即使此时keepalive已经在client和nginx之间生效)。
  # 因此对于QPS较高的场景,非常有必要加大这个参数,以避免出现大量连接被生成再抛弃的情况,减少TIME_WAIT。
  #对于黏度/交互度很高的用户场景,这个值是能够大幅提供nginx的服务能力的。
  keepalive_requests 1000;

  #设置客户端请求头读取超时时间。如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误;
  #client_header_timeout 15;
  #设置客户端请求主体读取超时时间。如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误,默认值是60;
  client_body_timeout 10;
  #指定响应客户端的超时时间。这个超时仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接。
  send_timeout 60;
  #用来指定客户端请求中较大的消息头的缓存最大数量和大小, “4”为个数,“128K”为大小,最大缓存量为4个128K;
  large_client_header_buffers 4 64k;
  #这个directive让Nginx将所有的requestbody存储在一个缓冲当中,它的默认值是off。
  #启用它可以优化读取$request_body变量时的I/O性能。可以在http, server 和 location模块中定义
  client_body_in_single_buffer on;
  #HTTP头是可以包含英文字母([A-Za-z])、数字([0-9])、连接号(-)hyphens, 也可义是下划线(_)。在使用nginx的时候应该避免使用包含下划线的HTTP头。主要的原因有以下2点。
  #1.默认的情况下nginx引用header变量时不能使用带下划线的变量。要解决这样的问题只能单独配置
  underscores_in_headers on;
  #2.默认的情况下会忽略掉带下划线的变量。要解决这个需要配置ignore_invalid_headers off。
  ignore_invalid_headers off;

  #配置日志格式。是Nginx的HttpLog模块指令,用于指定Nginx日志的输出格式。main为此日志输出格式的名称,可以在下面的access_log指令中引用。
  #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  # '$status $body_bytes_sent "$http_referer" '
  # '"$http_user_agent" "$http_x_forwarded_for"';

  log_format access
    '{"version": "2", '
    '"time": "$time_iso8601", '
    '"remote_addr": "$remote_addr", '
    '"status": "$status", '
    '"bytes_sent": "$bytes_sent", '
    '"host": "$host", '
    '"request_method": "$request_method", '
    '"request_uri": "$request_uri", '
    '"request_time": "$request_time", '
    '"response_time": "$upstream_response_time",'
    '"http_referer": "$http_referer", '
    '"body_bytes_sent": "$body_bytes_sent", '
    '"http_user_agent": "$http_user_agent", '
    '"http_x_forwarded_for": "$http_x_forwarded_for", '
    '"cookie": "$http_cookie"}';

  #配置access.log日志及存放路径,并使用上面定义的main日志格式
  #access_log logs/access.log main;

  #这个参数指定了是否记录客户端的请求出现404错误的日志。
  log_not_found off;
  #隐藏版本号,off:表示赢藏nginx版本号。
  server_tokens off;
  #开启高效文件传输模式。
  #sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
  sendfile on;
  #防止网络阻塞
  tcp_nopush on;
  tcp_nodelay on;

  #变量哈希表的最大值(默认值)
  variables_hash_max_size 512;
  #为变量哈希表制定关键字栏的大小(默认64)
  variables_hash_bucket_size 128;

  #map模块使用
  map_hash_max_size 102400;
  map_hash_bucket_size 256;

  #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  #开启限制IP连接数的时候需要使用
  limit_zone crawler $binary_remote_addr 10m;


  #HttpGzip模块配置

  #用于设置开启或者关闭gzip模块,“gzip on”表示开启GZIP压缩,实时压缩输出数据流;
  gzip on;
  #设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值是0,不管页面多大都进行压缩。建议设置成大于1K的字节数,小于1K可能会越压越大;
  gzip_min_length 1k;
  #表示申请4个单位为16K的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果;
  gzip_buffers 4 64k;
  #用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP解压;(前端如果是squid2.5请使用1.0)
  gzip_http_version 1.0;
  #用来指定GZIP压缩比,1 压缩比最小,处理速度最快;9 压缩比最大,传输速度快,但处理最慢,也比较消耗cpu资源;
  gzip_comp_level 6;
  # 该指令在nginx使用反向代理的时候起作用,是否压缩取决于请求头中的“Via”字段,指令中可以同时指定多个不同的参数。根据请求和响应来决定启用或禁用对代理请求的响应的压缩
  # (1)off:禁用对所有代理请求的压缩
  # (2) expired:当响应头中包含过期时间时,启用压缩
  # (3) no-cache:当响应头的Cache-Control字段为no-cache时,启用压缩
  # (4) no-store:当响应头的Cache-Control字段为no-store时,启用压缩
  # (5) private:当响应头的Cache-Control字段为no-store时,启用压缩
  # --cache_control用于设置缓存机制
  # (6)no_last_modified:当响应头不包含响应最后修改时间字段时,启用压缩。
  # (7)no_etag:当想用头中不包含被请求变量的实体值时,启用压缩
  # (8)auth:当响应头包含用于授权http证书的Authorization字段时,启用压缩
  # (9)any:岁所有代理请求开启压缩。
  #默认值 gzip_proxied off;
  gzip_proxied any;
  #不启用压缩的条件,IE6对Gzip不友好,所以不压缩
  gzip_disable msie6;
  #用来指定压缩的类型,无论是否指定,“text/html”类型总是会被压缩的;
  gzip_types text/plain application/x-javascript text/css application/xml;
  #选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过Nginx压缩的数据。
  gzip_vary on;


  #upstream zhizhi.com{
  # ip_hash;
  # server 192.168.8.10:80;
  # server 192.168.8.11:80 weight=50;
  # server 192.168.8.12:80 down;
  # server 192.168.8.13:8009 max_fails=3 fail_timeout=20s;
  # server 192.168.8.146:8080 weight=50;
  #}

  #Nginx的负载均衡模块目前支持4种调度算法,下面进行分别介绍,其中后两项属于第三方的调度方法。
  # 1、轮询(默认):每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响;
  # 2、Weight:指定轮询权值,Weight值越大,分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下;
  # 3、ip_hash:每个请求按访问IP的hash结果分配,这样来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题;
  # 4、fair:比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的  upstream_fair模块;
  # 5、url_hash:按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。Nginx本身是不支持url_hash的,如果需要使用这种调度算法,必须安装Nginx 的hash软件包。
  #在HTTP Upstream模块中,可以通过server指令指定后端服务器的IP地址和端口,同时还可以设定每个后端服务器在负载均衡调度中的状态。常用的状态有:
  # down:表示当前的server暂时不参与负载均衡;
  # backup:预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器,因此这台机器的压力最轻;
  # max_fails:允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误;
  # fail_timeout:在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用。
  #注意,当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup。

 

  #配置虚拟主机
  server {
    #用于指定虚拟主机的服务端口
    listen 80;
    #用来指定IP地址或者域名,多个域名之间用空格分 开
    server_name localhost;
    #用于设定访问的默认首页地址
    #index index.html index.htm index.php;
    #指令用于指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径
    #root /dreambegin/dream
    #配置字符集
    #charset koi8-r;
    #配置本虚拟主机的访问日志。用来指定此虚拟主机的访问日志存放路径,最后的main用于指定访问日志的输出格式。
    #access_log logs/host.access.log main;

 

#允许跨域访问的域名,可以是一个域的列表,也可以是通配符*
add_header Access-Control-Allow-Origin *;
#是否允许请求带有验证信息
add_header Access-Control-Allow-Credentials true;
#允许使用的请求方法,以逗号隔开
add_header Access-Control-Allow-Methods 'POST,GET,OPTIONS,PUT,DELETE';
#允许脚本访问的返回头
add_header Access-Control-Allow-Headers 'Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With,Pragma,Date,x-timestamp';
#用来指定本次预检请求的有效期,单位为秒
#add_header 'Access-Control-Max-Age' 1728000;
#解决Content Security Policy (CSP) not implemented
#add_header Content-Security-Policy "default-src 'self';";
#解决Clickjacking: X-Frame-Options header
#add_header X-Frame-Options "SAMEORIGIN";
#解决HTTP Strict Transport Security (HSTS) not implemented
#add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
#允许自定义的头部,以逗号隔开,大小写不敏感
#add_header Access-Control-Expose-Headers 'WWW-Authenticate,Server-Authorization';
#P3P支持跨域cookie操作
add_header P3P 'policyref="/w3c/p3p.xml", CP="NOI DSP PSAa OUR BUS IND ONL UNI COM NAV INT LOC"';



    #匹配访问路径的,默认匹配斜杠/开头的请求,当访问路径中有斜杠/,会被该location匹配到并进行处理
    #http://192.168.188.128:80/
    location / {
      #root是配置服务器的默认网站根目录位置,默认为nginx安装主目录下的html目录
      root html;
      #配置首页文件的名称
      index index.html index.htm;
      #拒绝的ip
      deny 127.0.0.1;
      #允许的ip
      allow 172.18.5.54;
    }

    #所有扩展名以.gif、.jpg、.jpeg、.png、.bmp、.swf结尾的静态文件都交给nginx处理,而expires用来指定静态文件的过期时间,这里是30天。
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
      root /wwwroot/www.cszhi.com;
      expires 30d;
    }
    #以下这段设置是将upload和html下的所有文件都交给nginx来处理,当然,upload和html目录包含在/web/wwwroot/www.cszhi.com目录中。
    location ~ ^/(upload|html)/ {
      root /web/wwwroot/www.cszhi.com;
      expires 30d;
    }


    location / {
      proxy_pass http://127.0.0.1:88;
      #在使用Nginx做反向代理功能时,有时会出现重定向的url不是我们想要的url,这时候就可以使用proxy_redirect进行url重定向设置了。
      #proxy_redirect功能比较强大,其作用是对发送给客户端的URL进行修改。
      #默认:proxy_redirect default;
      #配置块(使用的字段):http、server、location
      #我们是关闭此项的。
      proxy_redirect off;
      #只要用户在浏览器中访问的域名绑定了 VIP VIP 下面有RS;则就用$host ;host是访问URL中的域名和端口 www.taobao.com:80
      proxy_set_header Host $host;
      #把源IP 【$remote_addr,建立HTTP连接header里面的信息】赋值给X-Real-IP;这样在代码中 $X-Real-IP来获取 源IP
      proxy_set_header X-Real-IP $remote_addr;
      #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP(作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来,用 【,】隔开;代码中用 echo $x-forwarded-for |awk -F, '{print $1}' 来作为源IP)
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      #以下是一些反向代理的配置,可选。
      #允许客户端请求的最大单文件字节数。外面的快设置之后这里不需要在设置了。
      #client_max_body_size 10m;
      #缓冲区代理缓冲用户端请求的最大字节数,
      #client_body_buffer_size 128k;
      #nginx跟后端服务器连接超时时间(代理连接超时);#nginx服务器与被代理的服务器建立连接的超时时间,默认60秒
      proxy_connect_timeout 60;
      #后端服务器数据回传时间(代理发送超时);#nginx服务器想被代理服务器组发出read请求后,等待响应的超时间,默认为60秒。
      proxy_send_timeout 30;
      #连接成功后,后端服务器响应时间(代理接收超时);#nginx服务器想被代理服务器组发出write请求后,等待响应的超时间,默认为60秒。
      proxy_read_timeout 90;
      #Nginx服务器提供代理服务的http协议版本1.0,1.1
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      #支持客户端的请求方法。post/get;
      #proxy_method get;
      #客户端断网时,nginx服务器是否中断对被代理服务器的请求。默认为off。
      #proxy_ignore_client_abort on;
      #Nginx服务器不处理设置的http相应投中的头域,这里空格隔开可以设置多个。
      proxy_ignore_headers "Expires" "Set-Cookie";
      #存放http报文头的哈希表容量上限,默认为512个字符。代理缓存头信息最大长度[设置头部哈希表的最大值,不能小于你后端服务器设置的头部总数]
      proxy_headers_hash_max_size 1024;
      #nginx服务器申请存放http报文头的哈希表容量大小。(默认64)[这将限制头部字段名称的长度大小,如果你使用超过64个字符的头部名可以加大这个值。]
      proxy_headers_hash_bucket_size 128;
      #反向代理upstream中设置的服务器组,出现故障时,被代理服务器返回的状态值。error|timeout|invalid_header|http_500|http_502|http_503|http_504|http_404|off
      proxy_next_upstream timeout;
      #默认为on,如果我们在错误日志中发现“SSL3_GET_FINSHED:digest check failed”的情况时,可以将该指令设置为off。
      #proxy_ssl_session_reuse on;
      #设置代理服务器(nginx)保存用户头信息的缓冲区大小
      proxy_buffer_size 4k;
      #proxy_buffers缓冲区,网页平均在32k以下的设置。 该指令设置缓冲区的大小和数量,从被代理的后端服务器取得的响应内容,会放置到这里. 默认情况下,一个缓冲区的大小等于内存页面大小,可能是4K也可能是8K,这取决于平台。
      proxy_buffers 64 8k;
      #高负荷下缓冲大小(proxy_buffers*2)
      proxy_busy_buffers_size 64k;
      #设定缓存文件夹大小,大于这个值,将从upstream服务器传
      proxy_temp_file_write_size 64k;
      #如果被代理服务器返回的状态码为400或者大于400,设置的error_page配置起作用。默认为off。
      proxy_intercept_errors on;
      #缓存临时目录。
      #后端的响应并不直接返回客户端,而是先写到一个临时文件中,然后被rename一下当做缓存放在 proxy_cache_path 。
      #0.8.9版本以后允许temp和cache两个目录在不同文件系统上(分区),然而为了减少性能损失还是建议把它们设成一个文件系统上
      proxy_temp_path /app/3rd/nginx/default/proxy_temp;
      #设置缓存目录,目录里的文件名是 cache_key 的MD5值。
      # levels=1:2 keys_zone=cache_one:512m:
      # 表示采用2级目录结构,Web缓存区名称为cache_one,内存缓存空间大小为512MB,这个缓冲zone可以被多次使用。
      # inactive=1d max_size=2g:
      # 表示1天没有被访问的内容自动清除,硬盘最大缓存空间为2GB,超过这个大学将清除最近最少使用的数据。
      proxy_cache_path /app/3rd/nginx/proxy_cache levels=1:2 keys_zone=cache_one:512m inactive=1d max_size=2g;
    }
    #设置了虚拟主机的错误信息返回页面,通过error_page指令可以定制各种错误信息的返回页面。
    #在默认情况下,Nginx会在主目录的html目录中查找指定的返回页面,特别需要注意的是,这些错误信息的返回页面大小一定要超过512K,否者会被ie浏览器替换为ie默认的错误页面。
    #error_page 404 /404.html; #配置404页面
    error_page 500 502 503 504 /50x.html; #配置50x错误页面
    #精确匹配
    location = /50x.html {
      root html;
    }
  }

  #Nginx状态监测模块配置
  req_status_zone server "$server_name,$server_addr:$server_port" 10M;
  req_status server;
  server {
    listen 127.0.0.1:80;
    server_name 127.0.0.1;
    access_log /opt/log/nginx/nginx_status/status_access.log main;

    location /status {
      req_status_show;
      access_log /opt/log/nginx/nginx_status/status_access.log main;
      allow 127.0.0.1;
      deny all;
    }

    location /stub_status {
      stub_status on;
      access_log /opt/log/nginx/nginx_status_stub/status_stub_access.log main;
      allow 127.0.0.1;
      deny all;
    }

    location /check_status {
      check_status;
      access_log /opt/log/nginx/nginx_status_check/status_access_check.log main;
      allow 127.0.0.1;
      deny all;
    }
  }

  #配置https服务
 

server {
  listen 443 ssl;
  server_name www.liit.cn;
  ssl on;
  ssl_certificate /alidata/server/nginx/conf/ssl/1_www.liit.cn_bundle.crt;
  ssl_certificate_key /alidata/server/nginx/conf/ssl/2_www.liit.cn.key;
  ssl_session_timeout 5m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  ssl_prefer_server_ciphers on;

  location ^~ /xxxx{
    proxy_pass http://xxxx;
  }

  location / {
    root /usr/local/xxxx/a2;
  }

}

}

附带生产级别配置文件:https://gitee.com/zhizhixiaoxia/common/blob/master/nginx/nginx.conf

 

 

 

~~~~~~~~~~可以忽略~~~~~~~~~~~~~

发现一个不错的chatGPT网站,方便易用。

点击直达

posted on 2023-05-16 10:43  之之小侠  阅读(4140)  评论(0编辑  收藏  举报