参考资料2
参考资料3
主配置文件 /etc/nginx/nginx.conf 。
配置文件中的 path,既可以是绝对路径也可以是相对路径,相对路径相对 /usr/share/nginx 目录。
通过 default_server 参数,指定当前 server 为对应 IP:PORT 对的默认服务器。当一个请求匹配到 IP:PORT,但是 Host 字段不匹配任何一个 server_name,则应用默认服务器 server。假设 http://www.lishiqing.com 请求的 IP:PORT 为 192.168.100.104:80,但是没有对应的 server_name 匹配 www.lishiqing.com ,则应用默认服务器。
如果没有一个 listen 指令具有 default_server 参数,则具有 IP:PORT 对的第一个 server 将是该 IP:PORT 对的默认服务器。
以下配置忽略 server_name,所有指向 192.168.100.105 的域名都能应用该 server
以下配置访问 lishiqing.com 应用默认 server,也就是第一个 server
参考资料
location string_path {} 区分大小写的字符串
location = string_path {} 严格匹配字符串
location ~ reg_path {} 区分大小写的正则表达式
location ~* reg_path {} 不区分大小写的正则表达式
http://lishiqing.com/shop/images/1.png 这个请求的 query 为 /shop/images/1.png 。
当 location 后面是字符串的时候,如果某个请求的 query 以该字符串开头,则匹配该 location,比如 /shop/images/1.png 的请求匹配 location /shop {} ,也匹配 location / {} ,但是不匹配 location /blog 。
当 location 后面是正则表达式的时候,如果某个请求的 query 匹配该正则表达式,则匹配该 location,比如 /shop/images/1.png 的请求匹配 location ~ \.(jpg|jpeg|png)$ {} 。
如果某个 query 匹配多个字符串的 location,那么应用匹配度最高的一个 location,与 location 的顺序无关。比如 /shop/images/1.png 的请求匹配 location / {} 和 location /shop {} ,但是应用 location /shop {} 。
如果某个 query 匹配多个正则表达式的 location,那么按照 location 的顺序应用第一个匹配的 location。比如 /shop/images/1.png 的请求匹配 location ~ \.(jpg|jpeg|png)$ {} 和 location ~ .*/images/.* {} ,但是应用第一个匹配的 location ~ \.(jpg|jpeg|png)$ {} 。因为在 query 在检查正则表达式的时候,遇见第一匹配的 location 就停止继续查找了。
如果某个 query 既匹配某个字符串的 location,又匹配某个正则表达式的 location,那么应用正则表达式的 location,与顺序无关。比如 /shop/images/1.png 的请求匹配 location /shop {} 和 location ~ \.(jpg|jpeg|png)$ {} ,但是会应用 location ~ \.(jpg|jpeg|png)$ {} 。这是因为某个请求会先检查跟着字符串的 location,不管是否找到匹配的字符串 location,都会继续按照顺序查找跟着正则表达式 location,因此正则表达式的优先级高于字符串。如果找到了匹配的正则表达式,则立即停止查找,应用该 location,如果没找到匹配的正则表达式,则应用刚才找到的匹配度最高的字符串 location。
location = string_path {} 为严格匹配,query 必须与 string_path 完全一致才能匹配。如果 query 与某个 = string_path 匹配,则立即停止查找,应用该 location。意味着不会去查找正则表达式 location。比如 /shop/images/1.png 匹配 location = /shop/images/1.png {} ,不匹配 location = /shop {} 和 location = /shop/images 。一般用来设置 location = / {} 来匹配 / 的 query,因为 / 的 query 会很频繁,因此将 location = / {} 放在第一条 location 可以提高匹配查询的效率。
location ^~ string_path {} 这种字符串匹配的优先级高于正则表达式,当某个 query 匹配该 location 的时候,不会继续查找正则表达式的 location 了。比如 /shop/images/1.png 的 query 满足 location ^~ /shop {} 和 location ~ \.(jpg|jpeg|png)$ {} ,但是会应用 location ^~ /shop {} 。
总结:
1、如果路径当中是以\ \ \这种形式的,要改为/ / /例如:D:\test 改为 D:/test
2、改完之后有的同学会有疑问,为啥还不生效。你需要执行以下命令,彻底的从起nginx服务。
1.tasklist /fi "imagename eq nginx.exe
2.kill掉所有的进程:taskkill /pid 16896 /f
3.start nginx
此时你就会惊人的发现问题解决了
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)