nginx配置常见参数含义及用法

nginx转发的配置文件一般有两种用途,一种是转发url,一种是转发端口。差异并不是很大,我们一起来说明。

首先看一个常见的配置:

server {
    default_type 'text/html';
    charset utf-8;
    listen 80;
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;

    server_name www.mydomin.com
    ;
    access_log /usr/local/nginx/logs/access.log combined;
    index index.html index.htm index.jsp index.php;
    #error_page 404 /404.html;
    
    location ~ \.(cfg|jpg) {
        root /ftpfile/gameCfg/;
        add_header Content-Disposition "attachment";
    }

    location / {
        root /ftpfile/gameCfg/;
        add_header Access-Control-Allow-Origin *;
    }
}
  • autoindex(on/off)
    是否使用自动目录列表
    一般当我们的目录用于显示和下载文件时采用autoindex on;
    如:
    在这里插入图片描述

    如果不显示,就autoindex off;
    在这里插入图片描述

  • autoindex_exact_size(on/off)
    指定生成的自动目录文件大小,可以精确到bytes,KB,MB,GB
    默认on

  • autoindex_localtime(on/off)
    是否在列表目录文件上显示本地实践

  • default_type ‘text/html’;
    默认文件的显示方式,如果开启这个,我们点击一个文件就是读取文件,不会下载,但是如果我们显示设置了下载,这个就被忽略。

  • location
    location是我们配置识别url的规则,重中之重!

  1. 语法规则
    location [=||*|^~] /uri/ {… }

  2. 匹配规则
    如上面我们的例子,我们一共写了两个 location配置,第一个是一个正则匹配,不区分大小写,只要后缀是/.cfg或者/.png的都可以匹配,第二个是后缀为/均匹配。这样我们在浏览器输入一个地址,那么就会根据这些匹配规则从上到下匹配,优先使用第一个成功匹配的匹配。

      location = / {
          #规则A
      }
      location = /login {
          #规则B
      }
      location ^~ /static/ {
          #规则C
      }
      location ~ \.(gif|jpg|png|js|css)$ {
          #规则D
      }
      location ~* \.png$ {
          #规则E
      }
      location !~ \.html$ {
          #规则F
      }
      location !~* \.html$ {
          #规则G
      }
      location / {
          #规则H
      }

那么产生的效果如下:

  • 访问根目录/,比如http://localhost/将匹配规则A

  • 访问 http://localhost/login 将匹配规则B,http://localhost/register则匹配规则H

  • 访问 http://localhost/static/a.html 将匹配规则C

  • 访问 http://localhost/a.gif,http://localhost/b.jpg 将匹配规则D和规则E,但是规则D顺序优先,规则E不起作用,而http://localhost/static/c.png则优先匹配到规则C

  • 访问 http://localhost/a.PNG 则匹配规则E,而不会匹配规则D,因为规则E不区分大小写。

  • 访问 http://localhost/a.html 不会匹配规则F和规则G,http://localhost/a.HTML不会匹配规则G,因为不区分大小写。规则F,规则G属于排除法,符合匹配规则但是不会匹配到,所以想想看实际应用中哪里会用到。

  • 访问 http://localhost/category/id/1111 则最终匹配到规则H,因为以上规则都不匹配,这个时候应该是nginx转发请求给后端应用服务器,进行处理。


  • add_header Content-Disposition “attachment”;
    如果访问到此目录的文件的目的是下载,则在location下面加上此条。

  • 本例中我们是转发到目录 /root/ftpfile/gameCfg/
    同样我们可以转发到端口

proxy_pass http://127.0.0.1:8080;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值