Nginx常见配置

大文件上传

client_max_body_size     1000m;
client_header_timeout    1m;
client_body_timeout      5m;
proxy_connect_timeout   60s;
proxy_read_timeout      1m;
proxy_send_timeout      1m;
send_timeout 20s;

每个参数的意思:

client_max_body_size

限制请求体的大小,若超过所设定的大小,返回413错误。

client_header_timeout

读取请求头的超时时间,若超过所设定的大小,返回408错误。

client_body_timeout

读取请求实体的超时时间,若超过所设定的大小,返回413错误。

proxy_connect_timeout

http请求无法立即被容器(tomcat, netty等)处理,被放在nginx的待处理池中等待被处理。

此参数为等待的最长时间,默认为60秒,官方推荐最长不要超过75秒。

proxy_read_timeout

http请求被容器(tomcat, netty等)处理后,nginx会等待处理结果,也就是容器返回的response。

此参数即为服务器响应时间,默认60秒。

proxy_send_timeout

http请求被服务器处理完后,把数据传返回给Nginx的用时,默认60秒。

send_timeout

服务器把结果返回的时间

大文件上传费时的是文件到代理服务器(Nginx)的时间,所以proxy_xxx相关的时间不用配置的过长

动静分离

upstream filetest_psvmc {   
      server 127.0.0.1:8905;
}  


server {  
      listen 80;  
      server_name filetest.psvmc.cn;
      listen 443; 
      ssl on;
      ssl_certificate   /etc/nginx/cert/psvmc.pem;
      ssl_certificate_key  /etc/nginx/cert/psvmc.key;
      ssl_session_timeout 5m;
      ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
      ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
      ssl_prefer_server_ciphers on; 

location ^~ /static/ {
      index index.html;
      root  /data/wwwjarapi/8905xhkjfileapitest/;   
}

location / {
          proxy_pass http://filetest_psvmc/;  
          proxy_cookie_path / /;
          proxy_redirect  / /; 
          proxy_set_header Host $host;  
          proxy_set_header X-Real-IP $remote_addr;  
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
          client_max_body_size 1000m;  
          client_body_buffer_size 128k;   
          client_body_timeout 5m;
          proxy_connect_timeout 300s;
          proxy_send_timeout 300s;
          proxy_read_timeout 300s;   
          proxy_busy_buffers_size 64k;  
          proxy_temp_file_write_size 64k; 
          proxy_buffer_size 64k; 
          proxy_buffers 8 64k; 
          fastcgi_buffer_size 128k; 
          fastcgi_buffers 4 128k;
          send_timeout 20s;     
  }
}

注意

20行的代码root的路径不要配置为/data/wwwjarapi/8905xhkjfileapitest/static/

否则会在static文件夹下再查找static文件夹

location基本语法

location [=|~|~*|^~|@] pattern{……}
  • = 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。
  • ~ 匹配区分大小写的定的正则表达式
  • ~* 匹配不区分大小写的定的正则表达式
  • ^~ 类似于无修饰符的行为,也是以指定模式开始,不同的是,如果模式匹配,
  • 那么就停止搜索其他模式了
  • !~ 不匹配区分大小写的定的正则表达式
  • !~* 不匹配不区分大小写的定的正则表达式

示例

location = / {
  # 只匹配 / 的查询.
  [ configuration A ]
}
location / {
  # 匹配任何以 / 开始的查询,但是正则表达式与一些较长的字符串将被首先匹配。
  [ configuration B ]
}
location ^~ /images/ {
  # 匹配任何以 /images/ 开始的查询并且停止搜索,不检查正则表达式。
  [ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配任何以gif, jpg, or jpeg结尾的文件,但是所有 /images/ 目录的请求将在Configuration C中处理。
  [ configuration D ]
} 

location ~*.(gif|jpg|swf)$ {
  valid_referers none blocked image.psvmc.cn static.psvmc.cn;
  if ($invalid_referer) {
    #防盗链
    rewrite ^/ http://$host/daolian.png;
  }
  [ configuration E ]
}

各请求的处理如下例:

  • / → configuration A
  • /documents/document.html → configuration B
  • /images/1.gif → configuration C
  • /documents/1.jpg → configuration D

查找顺序

  1. 带有=的精确匹配优先
  2. 没有修饰符的精确匹配
  3. 正则表达式按照他们在配置文件中定义的顺序
  4. 带有^~修饰符的,开头匹配
  5. 带有~ 或~* 修饰符的,如果正则表达式与URI匹配
  6. 没有修饰符的,如果指定字符串与URI开头匹配

root、alias指令区别

location /img/ {
    alias /var/www/image/;
}
#若按照上述配置的话,则访问/img/目录里面的文件时,ningx会自动去/var/www/image/目录找文件

location /img/ {
    root /var/www/image;
}
#若按照这种配置的话,则访问/img/目录下的文件时,nginx会去/var/www/image/img/目录下找文件。]

区别

  • alias是一个目录别名的定义,root则是最上层目录的定义。
  • alias后面必须要用/结束,否则会找不到文件的 而root则可有可无

文件下载

location /download/ {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Content-Type' 'application/octet-stream';
        alias  /data/wwwjarapi/8908schoolfiletest/static/;  
    }

关键语句

add_header ‘Content-Type’ ‘application/octet-stream’;

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇