nginx try_files用法 及Nginx location的一些配置

实例:Yii2推荐ngnix try_files配置

location / {
    try_files $uri $uri/ /index.php?$args;
}

找指定路径下文件,如果不存在,则转给哪个文件执行。
try_files
- 语法: try_files file1 [file2 … filen] fallback
- 默认值: 无
- 作用域: location

Nginx location的匹配规则

~      波浪线表示执行一个正则匹配,区分大小写
~*    表示执行一个正则匹配,不区分大小写
^~    ^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
=      进行普通字符精确匹配
@    #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files
location 匹配优先级

= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。
普通字符匹配,正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配。
^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。
最后匹配理带有"~"和"~*"的指令,如果找到相应的匹配,则nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。

示例

location  = / {
  # 只匹配"/".
  [ configuration A ] 
}
location  / {
  # 匹配任何请求,因为所有请求都是以"/"开始
  # 但是更长字符匹配或者正则表达式匹配会优先匹配
  [ configuration B ] 
}
location ^~ /images/ {
  # 匹配任何以 /images/ 开始的请求,并停止匹配 其它location
  [ configuration C ] 
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配以 gif, jpg, or jpeg结尾的请求. 
  # 但是所有 /images/ 目录的请求将由 [Configuration C]处理.   
  [ configuration D ] 
}

URL 重写

仅是URL重写,不需要用location匹配,直接在server里写rewrite即可。

Nginx性能优化

nginx的ssl模块,他的缺省的ssl record size是16k。ssl层必须筹齐16k字节才开始解密。这样的话,在rest应用场景的延时就会比较大。 建议在rest场景ssl record size设置为4k。
nginx 通过ssl_buffer_size配置。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Nginx是一款高性能的Web服务器软件。它支持非常丰富的配置指令,其中之一就是try_filestry_files指令用于尝试寻找指定的文件或目录,并在找到匹配项时将请求传递给下一个指令,例如proxy_pass。 try_files指令的语法如下: try_files file ... uri; 其中,file是要查找的文件或目录,可以指定多个;uri是要传递的URI。 如果Nginx无法找到任何匹配的文件或目录,则会返回404错误。 try_files指令可以用于处理一些常见的情况,例如: 1. 静态文件服务 可以通过try_files指令将请求传递给静态文件服务,如果找到匹配的文件,则返回该文件,否则返回404错误。 例如: server { listen 80; server_name example.com; root /var/www; location / { try_files $uri $uri/ =404; } } 在这个例子中,当请求到达根目录时,Nginx会尝试查找匹配URI的文件,如果找到,则返回该文件,否则返回404错误。 2. URL重写 可以通过try_files指令将请求重写为另一个URI,并将其传递给其他指令。 例如: location /blog/ { try_files $uri $uri/ /index.php?$args; } 在这个例子中,当请求到达/blog/目录时,Nginx会尝试查找匹配URI的文件(如果有),否则会将请求重写为/index.php,并将查询字符串(args)附加在后面。 尽管try_files指令功能强大,但也要慎用,否则可能会对服务器性能产生负面影响。当指定多个文件或目录时,Nginx会逐个查找,这可能会导致一些性能问题。因此,在使用try_files时,应该尽可能保持简单,避免使用复杂的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程圈子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值