欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

nginx中的MIME.types的作用 mp4 wmv 有大用

MIME-type和Content-Type的关系:
当web服务器收到静态的资源文件请求时,依据请求文件的后缀名在服务器的MIME配置文件中找到对应的MIME Type,再根据MIME Type设置HTTP Response的Content-Type,然后浏览器根据Content-Type的值处理文件。

什么是MIME-TYPE:
为什么这么说呢?首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有 HTML、有 XML、有 GIF、还有 Flash ...
那么,浏览器是如何区分它们,绝对什么内容用什么形式来显示呢?答案是 MIME Type,也就是该资源的媒体类型。
媒体类型通常是通过 HTTP 协议,由 Web 服务器告知浏览器的,更准确地说,是通过 Content-Type 来表示的,例如:
Content-Type: text/HTML
表示内容是 text/HTML 类型,也就是超文本文件。为什么是“text/HTML”而不是“HTML/text”或者别的什么?MIME Type 不是个人指定的,是经过 ietf 组织协商,以 RFC 的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句,Email 附件的类型也是通过 MIME Type 指定的)。
通常只有一些在互联网上获得广泛应用的格式才会获得一个 MIME Type,如果是某个客户端自己定义的格式,一般只能以 application/x- 开头。
XHTML 正是一个获得广泛应用的格式,因此,在 RFC 3236 中,说明了 XHTML 格式文件的 MIME Type 应该是 application/xHTML+XML。
当然,处理本地的文件,在没有人告诉浏览器某个文件的 MIME Type 的情况下,浏览器也会做一些默认的处理,这可能和你在操作系统中给文件配置的 MIME Type 有关。比如在 Windows 下,打开注册表的“HKEY_LOCAL_MACHINESOFTWAREClassesMIMEDatabaseContent Type”主键,你可以看到所有 MIME Type 的配置信息。



来自  https://blog.csdn.net/wz947324/article/details/82190902




【Nginx】MIME与mime.types

原创
2015/11/08 22:23
阅读数 2.7W

当你刚安装完Nginx,打开默认的配置文件nginx.conf时,你会看到http上下文中有这一行配置:

include       mime.types; 

有的小伙伴就有疑问了:mime.types是什么文件?在Nginx中又是什么作用呢? 下面我们就来看看,mime.types究竟是怎么回事。

一、MIME与电子邮件

说起MIME,我们首先要说说电子邮件。

早期的电子邮件只能支持ASCII字符集,而且没法添加附件。后来,人们意识到电子邮件要想走向世界,必须支持更多的字符集,同时,能够随着邮件发送附件也成为越来越迫切的需求。在不断的努力下,MIME——Multipurpose Internet Mail Extension(多用途因特网邮件扩展)于1992年诞生了。通过MIME,我们可以将不同类型的数据(文本、图片、视频)放到一条邮件中。比如,可以写一封既含有英文,又含有中文,再加上一个mp3音乐文件作为附件的邮件。这种含有多种类型数据的文件被称为多部分对象集合(Multipart messages)。这就解决了我们前面说的两个问题。

可以说,没有MIME,就没有今天多姿多彩的互联网。

二、MIME与HTTP协议

除了支持电子邮件的SMTP协议以外,MIME还被其他协议或者程序广泛使用着,这其中就包括大名鼎鼎的HTTP协议。HTTP服务器在发送一份报文主体时,在HTTP报文头部插入解释自身数据类型的MIME头部信息(Content-Type)。客户端接收到这部分有关数据类型的信息,就能调用相应的程序处理数据。有时候,这个程序是客户端(浏览器)内置的,比如打开一个GIF图片。有时候你需要先安装一个插件,比如第一次观看优酷的视频前你一般需要安装Flash插件。

三、MIME与Nginx

打开Nginx配置文件中的mime.types,我们能看到如下信息:

types {
    text/html                             html htm shtml;
    text/css                              css;
    text/xml                              xml;
    image/gif                             gif;
    image/jpeg                            jpeg jpg;
    application/javascript                js;
    application/atom+xml                  atom;
    application/rss+xml                   rss;

    text/mathml                           mml;
    text/plain                            txt;
    text/vnd.sun.j2me.app-descriptor      jad;
    text/vnd.wap.wml                      wml;
    text/x-component                      htc;

    image/png                             png;
    image/tiff                            tif tiff;
    image/vnd.wap.wbmp                    wbmp;
    image/x-icon                          ico;
    image/x-jng                           jng;
    image/x-ms-bmp                        bmp;
    image/svg+xml                         svg svgz;
    image/webp                            webp;

    application/font-woff                 woff;
    application/java-archive              jar war ear;
    application/json                      json;
    application/mac-binhex40              hqx;
    application/msword                    doc;
    application/pdf                       pdf;
    application/postscript                ps eps ai;
    application/rtf                       rtf;
    application/vnd.apple.mpegurl         m3u8;
    application/vnd.ms-excel              xls;
    ....以下省略....

这里形如text/html格式的字符串就是用来说明数据类型的,/前的是主类型,/之后的是该主类型下的子类型。详细的类型定义在RFC2046中。Nginx通过服务器端文件的后缀名来判断这个文件属于什么类型,再将该数据类型写入HTTP头部的Content-Type字段中,发送给客户端。

比如,当我们打开OSC的一个页面,看到一个PNG格式的图片的时候,Nginx是这样发送格式信息的:

  1. 服务器上有enter_narrow.png这个文件,后缀名是png;

  2. 根据mime.types,这个文件的数据类型应该是image/png;

  3. Content-Type的值设置为image/png,然后发送给客户端。

我们在Chrome浏览器中可以看到这个文件返回的头部信息正如上文所写的一样:

PNG

这就是mime.types的作用,小伙伴们了解了吗?

来自  https://my.oschina.net/plutonji/blog/527797



nginx中CSS重定向解析有问题——mime.type详解

Nginx 会根据mime type定义的对应关系来告诉浏览器如何处理服务器传给浏览器的这个文件,是打开还是下载;如果Web程序没设置,Nginx也没对应文件的扩展名,就用Nginx 里默认的 default_type定义的处理方式。


比如Nginx默认的配置中default_type application/octet-stream; 这个就是默认为下载,浏览器访问到未定义的扩展名的时候,就默认为下载该文件;如果将这个设置改成default_type text/html;那就是告诉浏览器默认的打开方式是把所有未设置的扩展名当HTML文件打开,虽然可能这样设置会很多打不开。



mime type 和文件扩展名的对应关系一般放在 mime.types这个文件里,然后用 include mime.types; 来加载


mime.types文件里是用types指令来定义的,下面是一个完整的定义:


  1. types {
  2. # Audio
  3. audio/midi mid midi kar;
  4. audio/mp4 aac f4a f4b m4a;
  5. audio/mpeg mp3;
  6. audio/ogg oga ogg opus;
  7. audio/x-realaudio ra;
  8. audio/x-wav wav;
  9. # Images
  10. image/bmp bmp;
  11. image/gif gif;
  12. image/jpeg jpeg jpg;
  13. image/png png;
  14. image/svg+xml svg svgz;
  15. image/tiff tif tiff;
  16. image/vnd.wap.wbmp wbmp;
  17. image/webp webp;
  18. image/x-icon ico cur;
  19. image/x-jng jng;
  20. # JavaScript
  21. application/javascript js;
  22. application/json json;
  23. # Manifest files
  24. application/x-web-app-manifest+json webapp;
  25. text/cache-manifest manifest appcache;
  26. # Microsoft Office
  27. application/msword doc;
  28. application/vnd.ms-excel xls;
  29. application/vnd.ms-powerpoint ppt;
  30. application/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
  31. application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
  32. application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;
  33. # Video
  34. video/3gpp 3gpp 3gp;
  35. video/mp4 mp4 m4v f4v f4p;
  36. video/mpeg mpeg mpg;
  37. video/ogg ogv;
  38. video/quicktime mov;
  39. video/webm webm;
  40. video/x-flv flv;
  41. video/x-mng mng;
  42. video/x-ms-asf asx asf;
  43. video/x-ms-wmv wmv;
  44. video/x-msvideo avi;
  45. # Web feeds
  46. application/xml atom rdf rss xml;
  47. # Web fonts
  48. application/font-woff woff;
  49. application/font-woff2 woff2;
  50. application/vnd.ms-fontobject eot;
  51. application/x-font-ttf ttc ttf;
  52. font/opentype otf;
  53. # Other
  54. application/java-archive jar war ear;
  55. application/mac-binhex40 hqx;
  56. application/pdf pdf;
  57. application/postscript ps eps ai;
  58. application/rtf rtf;
  59. application/vnd.wap.wmlc wmlc;
  60. application/xhtml+xml xhtml;
  61. application/vnd.google-earth.kml+xml kml;
  62. application/vnd.google-earth.kmz kmz;
  63. application/x-7z-compressed 7z;
  64. application/x-chrome-extension crx;
  65. application/x-opera-extension oex;
  66. application/x-xpinstall xpi;
  67. application/x-cocoa cco;
  68. application/x-java-archive-diff jardiff;
  69. application/x-java-jnlp-file jnlp;
  70. application/x-makeself run;
  71. application/x-perl pl pm;
  72. application/x-pilot prc pdb;
  73. application/x-rar-compressed rar;
  74. application/x-redhat-package-manager rpm;
  75. application/x-sea sea;
  76. application/x-shockwave-flash swf;
  77. application/x-stuffit sit;
  78. application/x-tcl tcl tk;
  79. application/x-x509-ca-cert der pem crt;
  80. application/x-bittorrent torrent;
  81. application/zip zip;
  82. application/octet-stream bin exe dll;
  83. application/octet-stream deb;
  84. application/octet-stream dmg;
  85. application/octet-stream iso img;
  86. application/octet-stream msi msp msm;
  87. application/octet-stream safariextz;
  88. text/css css;
  89. text/html html htm shtml;
  90. text/mathml mml;
  91. text/plain txt;
  92. text/vnd.sun.j2me.app-descriptor jad;
  93. text/vnd.wap.wml wml;
  94. text/vtt vtt;
  95. text/x-component htc;
  96. text/x-vcard vcf;
  97. }



一般在Nginx的配置文件nginx.conf里面的http{}字段中配置即可,注意mime.types是在你的nginx的安装目录下,如果目录不是下面的,那你要自己手工修改:


  1. # Define the MIME types for files.
  2. include /etc/nginx/mime.types;
  3. default_type application/octet-stream;
  4. # Update charset_types due to updated mime.types
  5. charset_types text/xml text/plain text/vnd.wap.wml application/x-javascript application/rss+xml text/css application/javascript application/json;




贴一份完整的配置



######Nginx配置文件nginx.conf中文详解#####

  1. #定义Nginx运行的用户和用户组
  2. user www www;
  3. #nginx进程数,建议设置为等于CPU总核心数。
  4. worker_processes 8;
  5.  
  6. #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
  7. error_log /usr/local/nginx/logs/error.log info;
  8. #进程pid文件
  9. pid /usr/local/nginx/logs/nginx.pid;
  10. #指定进程可以打开的最大描述符:数目
  11. #工作模式与连接数上限
  12. #这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
  13. #现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。
  14. #这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
  15. worker_rlimit_nofile 65535;
  16. events
  17. {
  18.     #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型
  19.     #是Linux 2.6以上版本内核中的高性能网络I/O模型,linux建议epoll,如果跑在FreeBSD上面,就用kqueue模型。
  20.     #补充说明:
  21.     #与apache相类,nginx针对不同的操作系统,有不同的事件模型
  22.     #A)标准事件模型
  23.     #Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
  24.     #B)高效事件模型
  25.     #Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
  26.     #Epoll:使用于Linux内核2.6版本及以后的系统。
  27.     #/dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
  28.     #Eventport:使用于Solaris 10。 为了防止出现内核崩溃的问题, 有必要安装安全补丁。
  29.     use epoll;
  30.     #单个进程最大连接数(最大连接数=连接数*进程数)
  31.     #根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。
  32.     worker_connections 65535;
  33.     #keepalive超时时间。
  34.     keepalive_timeout 60;
  35.     #客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。
  36.     #分页大小可以用命令getconf PAGESIZE 取得。
  37.     #[root@web001 ~]# getconf PAGESIZE
  38.     #4096
  39.     #但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。
  40.     client_header_buffer_size 4k;
  41.     #这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。
  42.     open_file_cache max=65535 inactive=60s;
  43.     #这个是指多长时间检查一次缓存的有效信息。
  44.     #语法:open_file_cache_valid time 默认值:open_file_cache_valid 60 使用字段:http, server, location 这个指令指定了何时需要检查open_file_cache中缓存项目的有效信息.
  45.     open_file_cache_valid 80s;
  46.     #open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除。
  47.     #语法:open_file_cache_min_uses number 默认值:open_file_cache_min_uses 1 使用字段:http, server, location  这个指令指定了在open_file_cache指令无效的参数中一定的时间范围内可以使用的最小文件数,如果使用更大的值,文件描述符在cache中总是打开状态.
  48.     open_file_cache_min_uses 1;
  49.     
  50.     #语法:open_file_cache_errors on | off 默认值:open_file_cache_errors off 使用字段:http, server, location 这个指令指定是否在搜索一个文件是记录cache错误.
  51.     open_file_cache_errors on;
  52. }
  53.  
  54.  
  55.  
  56. #设定http服务器,利用它的反向代理功能提供负载均衡支持
  57. http
  58. {
  59.     #文件扩展名与文件类型映射表
  60.     include mime.types;
  61.     #默认文件类型
  62.     default_type application/octet-stream;
  63.     #默认编码
  64.     #charset utf-8;
  65.     #服务器名字的hash表大小
  66.     #保存服务器名字的hash表是由指令server_names_hash_max_size 和server_names_hash_bucket_size所控制的。参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。如果hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。因此,如果Nginx给出需要增大hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小.
  67.     server_names_hash_bucket_size 128;
  68.     #客户端请求头部的缓冲区大小。这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。
  69.     client_header_buffer_size 32k;
  70.     #客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取。
  71.     large_client_header_buffers 4 64k;
  72.     #设定通过nginx上传文件的大小
  73.     client_max_body_size 8m;
  74.     #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
  75.     #sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
  76.     sendfile on;
  77.     #开启目录列表访问,合适下载服务器,默认关闭。
  78.     autoindex on;
  79.     #此选项允许或禁止使用socke的TCP_CORK的选项,此选项仅在使用sendfile的时候使用
  80.     tcp_nopush on;
  81.      
  82.     tcp_nodelay on;
  83.     #长连接超时时间,单位是秒
  84.     keepalive_timeout 120;
  85.     #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。
  86.     fastcgi_connect_timeout 300;
  87.     fastcgi_send_timeout 300;
  88.     fastcgi_read_timeout 300;
  89.     fastcgi_buffer_size 64k;
  90.     fastcgi_buffers 4 64k;
  91.     fastcgi_busy_buffers_size 128k;
  92.     fastcgi_temp_file_write_size 128k;
  93.     #gzip模块设置
  94.     gzip on; #开启gzip压缩输出
  95.     gzip_min_length 1k;    #最小压缩文件大小
  96.     gzip_buffers 4 16k;    #压缩缓冲区
  97.     gzip_http_version 1.0;    #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
  98.     gzip_comp_level 2;    #压缩等级
  99.     gzip_types text/plain application/x-javascript text/css application/xml;    #压缩类型,默认就已经包含textml,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
  100.     gzip_vary on;
  101.     #开启限制IP连接数的时候需要使用
  102.     #limit_zone crawler $binary_remote_addr 10m;
  103.     #负载均衡配置
  104.     upstream piao.jd.com {
  105.      
  106.         #upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
  107.         server 192.168.80.121:80 weight=3;
  108.         server 192.168.80.122:80 weight=2;
  109.         server 192.168.80.123:80 weight=3;
  110.         #nginx的upstream目前支持4种方式的分配
  111.         #1、轮询(默认)
  112.         #每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
  113.         #2、weight
  114.         #指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  115.         #例如:
  116.         #upstream bakend {
  117.         #    server 192.168.0.14 weight=10;
  118.         #    server 192.168.0.15 weight=10;
  119.         #}
  120.         #2、ip_hash
  121.         #每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
  122.         #例如:
  123.         #upstream bakend {
  124.         #    ip_hash;
  125.         #    server 192.168.0.14:88;
  126.         #    server 192.168.0.15:80;
  127.         #}
  128.         #3、fair(第三方)
  129.         #按后端服务器的响应时间来分配请求,响应时间短的优先分配。
  130.         #upstream backend {
  131.         #    server server1;
  132.         #    server server2;
  133.         #    fair;
  134.         #}
  135.         #4、url_hash(第三方)
  136.         #按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
  137.         #例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
  138.         #upstream backend {
  139.         #    server squid1:3128;
  140.         #    server squid2:3128;
  141.         #    hash $request_uri;
  142.         #    hash_method crc32;
  143.         #}
  144.         #tips:
  145.         #upstream bakend{#定义负载均衡设备的Ip及设备状态}{
  146.         #    ip_hash;
  147.         #    server 127.0.0.1:9090 down;
  148.         #    server 127.0.0.1:8080 weight=2;
  149.         #    server 127.0.0.1:6060;
  150.         #    server 127.0.0.1:7070 backup;
  151.         #}
  152.         #在需要使用负载均衡的server中增加 proxy_pass http://bakend/;
  153.         #每个设备的状态设置为:
  154.         #1.down表示单前的server暂时不参与负载
  155.         #2.weight为weight越大,负载的权重就越大。
  156.         #3.max_fails:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误
  157.         #4.fail_timeout:max_fails次失败后,暂停的时间。
  158.         #5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
  159.         #nginx支持同时设置多组的负载均衡,用来给不用的server来使用。
  160.         #client_body_in_file_only设置为On 可以讲client post过来的数据记录到文件中用来做debug
  161.         #client_body_temp_path设置记录文件的目录 可以设置最多3层目录
  162.         #location对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡
  163.     }
  164.      
  165.      
  166.      
  167.     #虚拟主机的配置
  168.     server
  169.     {
  170.         #监听端口
  171.         listen 80;
  172.         #域名可以有多个,用空格隔开
  173.         server_name www.jd.com jd.com;
  174.         index index.html index.htm index.php;
  175.         root /data/www/jd;
  176.         #对******进行负载均衡
  177.         location ~ .*.(php|php5)?$
  178.         {
  179.             fastcgi_pass 127.0.0.1:9000;
  180.             fastcgi_index index.php;
  181.             include fastcgi.conf;
  182.         }
  183.          
  184.         #图片缓存时间设置
  185.         location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
  186.         {
  187.             expires 10d;
  188.         }
  189.          
  190.         #JS和CSS缓存时间设置
  191.         location ~ .*.(js|css)?$
  192.         {
  193.             expires 1h;
  194.         }
  195.          
  196.         #日志格式设定
  197.         #$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
  198.         #$remote_user:用来记录客户端用户名称;
  199.         #$time_local: 用来记录访问时间与时区;
  200.         #$request: 用来记录请求的url与http协议;
  201.         #$status: 用来记录请求状态;成功是200,
  202.         #$body_bytes_sent :记录发送给客户端文件主体内容大小;
  203.         #$http_referer:用来记录从那个页面链接访问过来的;
  204.         #$http_user_agent:记录客户浏览器的相关信息;
  205.         #通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。
  206.         log_format access '$remote_addr - $remote_user [$time_local] "$request" '
  207.         '$status $body_bytes_sent "$http_referer" '
  208.         '"$http_user_agent" $http_x_forwarded_for';
  209.          
  210.         #定义本虚拟主机的访问日志
  211.         access_log  /usr/local/nginx/logs/host.access.log  main;
  212.         access_log  /usr/local/nginx/logs/host.access.404.log  log404;
  213.          
  214.         #对 "/" 启用反向代理
  215.         location / {
  216.             proxy_pass http://127.0.0.1:88;
  217.             proxy_redirect off;
  218.             proxy_set_header X-Real-IP $remote_addr;
  219.              
  220.             #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
  221.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  222.              
  223.             #以下是一些反向代理的配置,可选。
  224.             proxy_set_header Host $host;
  225.             #允许客户端请求的最大单文件字节数
  226.             client_max_body_size 10m;
  227.             #缓冲区代理缓冲用户端请求的最大字节数,
  228.             #如果把它设置为比较大的数值,例如256k,那么,无论使用firefox还是IE浏览器,来提交任意小于256k的图片,都很正常。如果注释该指令,使用默认的client_body_buffer_size设置,也就是操作系统页面大小的两倍,8k或者16k,问题就出现了。
  229.             #无论使用firefox4.0还是IE8.0,提交一个比较大,200k左右的图片,都返回500 Internal Server Error错误
  230.             client_body_buffer_size 128k;
  231.             #表示使nginx阻止HTTP应答代码为400或者更高的应答。
  232.             proxy_intercept_errors on;
  233.             #后端服务器连接的超时时间_发起握手等候响应超时时间
  234.             #nginx跟后端服务器连接超时时间(代理连接超时)
  235.             proxy_connect_timeout 90;
  236.             #后端服务器数据回传时间(代理发送超时)
  237.             #后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
  238.             proxy_send_timeout 90;
  239.             #连接成功后,后端服务器响应时间(代理接收超时)
  240.             #连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)
  241.             proxy_read_timeout 90;
  242.             #设置代理服务器(nginx)保存用户头信息的缓冲区大小
  243.             #设置从被代理服务器读取的第一部分应答的缓冲区大小,通常情况下这部分应答中包含一个小的应答头,默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小
  244.             proxy_buffer_size 4k;
  245.             #proxy_buffers缓冲区,网页平均在32k以下的设置
  246.             #设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8k
  247.             proxy_buffers 4 32k;
  248.             #高负荷下缓冲大小(proxy_buffers*2)
  249.             proxy_busy_buffers_size 64k;
  250.             #设置在写入proxy_temp_path时数据的大小,预防一个工作进程在传递文件时阻塞太长
  251.             #设定缓存文件夹大小,大于这个值,将从upstream服务器传
  252.             proxy_temp_file_write_size 64k;
  253.         }
  254.          
  255.          
  256.         #设定查看Nginx状态的地址
  257.         location /NginxStatus {
  258.             stub_status on;
  259.             access_log on;
  260.             auth_basic "NginxStatus";
  261.             auth_basic_user_file confpasswd;
  262.             #htpasswd文件的内容可以用apache提供的htpasswd工具来产生。
  263.         }
  264.          
  265.         #本地动静分离反向代理配置
  266.         #所有jsp的页面均交由tomcat或resin处理
  267.         location ~ .(jsp|jspx|do)?$ {
  268.             proxy_set_header Host $host;
  269.             proxy_set_header X-Real-IP $remote_addr;
  270.             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  271.             proxy_pass http://127.0.0.1:8080;
  272.         }
  273.          
  274.         #所有静态文件由nginx直接读取不经过tomcat或resin
  275.         location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|
  276.         pdf|xls|mp3|wma)$
  277.         {
  278.             expires 15d; 
  279.         }
  280.          
  281.         location ~ .*.(js|css)?$
  282.         {
  283.             expires 1h;
  284.         }
  285.     }
  286. }

######Nginx配置文件nginx.conf中文详解#####



来自  https://blog.csdn.net/qq_37788558/article/details/78621592


普通分类: