Nginx学习笔记——location
2016-08-18 00:00
127 查看
配置详解
location语法
location [=|~|~*|^~|@] /uri/ { … }~ 正则匹配
~* 正则匹配且不区分大小写
= 非正则匹配,执行普通匹配,遵守 严格匹配(完全一样)
^~ 非正则匹配,执行普通匹配,遵守 最大前缀(前缀一样即可,有多个选择最大前缀匹配的)
一般情况 普通匹配后 如果正则匹配成功 则覆盖普通匹配,除非使用 = 或者 ^~ 亦或者隐含的精确匹配
eg1
a) location /a/b/c.html{} (特殊情况 属于最大前缀匹配的精确匹配)
b) location /a/{}
c) location ~ \.html${}
> GET /a/c.html 会匹配到 c)
> GET /a/b/c.html 会匹配到 a)
所以匹配优先级
(=) > (完整路径) > (^~ 路径) > (~,~* 正则顺序) > (部分起始路径) > (/)
建议配置(转载 https://segmentfault.com/a/1190000002797606)
#直接匹配网站根,通过域名访问网站首页比较频繁,使用这个会加速处理,官网如是说。 #这里是直接转发给后端应用服务器了,也可以是一个静态首页 # 第一个必选规则 location = / { proxy_pass http://tomcat:8080/index } # 第二个必选规则是处理静态文件请求,这是nginx作为http服务器的强项 # 有两种配置模式,目录匹配或后缀匹配,任选其一或搭配使用 location ^~ /static/ { root /webroot/static/; } location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ { root /webroot/res/; } #第三个规则就是通用规则,用来转发动态请求到后端应用服务器 #非静态文件请求就默认是动态请求,自己根据实际把握 #毕竟目前的一些框架的流行,带.php,.jsp后缀的情况很少了 location / { proxy_pass http://tomcat:8080/ }
==============================================================================
location内部配置(有待补充)
proxy_pass http://localhost:8080$request_uri 被代理服务器的URLproxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上
===============================================================================
最近遇到的问题(20160920)
静态资源配置的时候location ~* /blog/img { root /usr; } #这个location 会将 匹配/blog/img路径的请求,指定到 /usr/blog/img/... 文件 #此处需注意静态资源访问,需要nginx所属用户、用户组有权限
相关文章推荐
- nginx配置文件中的location中文详解
- js实现网页防止被iframe框架嵌套及几种location.href的区别
- nginx学习之location的解析过程
- App Install Location
- Angular学习-$location
- MONO For Android学习笔记之使用Location服务获取位置
- file is missing from source location:c\temp\batang.ttc
- nginx location匹配规则
- 配置 <mvc:resources location="/js/" mapping="/js/**.js"/> @Controller失效
- android获得控件在屏幕中的绝对坐标 getLocationInWindow 和 getLocationOnScreen
- 关于window.location.href="delete_emp.do?id"+id;
- 一个简单的例子看明白如何利用window.location.hash实现ajax操作时浏览器的前进/后退功能
- window.top.location.href 和 window.location.href 的区别
- Fast dev didn't succeed, trying another location
- web.xml中通过contextConfigLocation的读取spring的配置文件
- javascript 中的location.pathname
- (七十六)CoreLocation(二)获取经纬度、速度、方向,进行区域监听
- JavaScript高级编程【BOM-location对象】
- IOS LocationManager定位国内偏移,火星坐标(GCJ-02)解决方法
- JavaScript学习笔记——BOM_window子对象_History、Location、Screnn对象