第一个层次是 server 指令,它通过域名、ip 和端口来做第一层级匹配,当找到匹配的 server 后就进入此 server 的 location 匹配。 location 的匹配并不完全按照其在配置文件中出现的顺序来匹配,请求 URI 会按如下规则进行匹配: 先精准匹配=,精准匹配成功则会立即停止其他类型匹配; 没有精准匹配成功时,进行前缀匹配。
Location[=|~|~*|^~|@] /uri/ { … } location = /uri 开头表示精确匹配,只有完全匹配上才能生效 location ^~ /uri 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格) location ~ pattern 开头表示...
server{listen80;server_nametest;error_log /etc/nginx/conf.d/error.log;root /wwwroot/html;index c.html;location /t/{root /wwwroot/html;index a.html;}} 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. error_page: 设置网站的错误页面,语法为: error_page code ... [=[response]]uri; code...
了解完server_name和listen的配置规则,我们知道了一个请求过来会对应哪个server。接下来我们要讨论的是某个server下不同请求URI对应的location配置查找规则。 配置语法 Syntax:location[=|~|~*|^~]uri{...}location@name{...}Default:— Context:server,location 根据配置语法我们知道location可以有以下几种形式: =...
nginx是通过server块中location的配置用来匹配不同url访问d的。 location配置匹配方式主要包括三种:精准匹配、普通匹配和正则匹配 location[=|~|~*|^~]uri{...}location@name{...} 常见的location路径映射路径有以下几种: = 进行普通字符精确匹配。也就是完全匹配 ...
nginx配置文件主要分为六个区域: main(全局设置) events(nginx工作模式) http(http设置) sever(主机设置) location(URL匹配) upstream(负载均衡服务器设置) 有兴趣的同学可以详细去了解一下,这里我们只用到了server,location,upstream区域。 server配置 #相当于在http模块再添加一个server模块 ...
location @fallback #不是用来处理普通的HTTP请求的,专门用来内部重定向的(仅对内部访问重定向) #在server上下文中配置 error_page 404 = @fallback; location @fallback { proxy_pass http://www.nginx.org; } #当访问不存在的http://192.168.7.3/en/ 时将会重定向到http://www.nginx.org/en/ ...
location ~ .*\.(js|css)$ { expires 1h; } } 四.样例分析 server {...} 配置虚拟主机,可以有多个 listen 80; 监听80 端口 server_name www.example.com; 网站域名www.example.com root /web/www.example.com; 定义网站的根目录,相对路径也可以 index...
一、location 块的基本概念 location 块用于在 Nginx 配置文件中定义一个位置匹配规则。当客户端发送请求时,Nginx 会根据请求的 URI 来匹配 location 块,并执行相应的处理指令。location 块可以嵌套在 server 块中,也可以嵌套在其他 location ...
Nginx配置文件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若干个指令。main部分设置的指令将影响其它所有部分的设置;server部分的指令主要用于指定虚拟主机域名、IP和端口;upstream的指令用于设置一系列的...