Below you will find pages that utilize the taxonomy term “location”
November 12, 2010
nginx location基础
"基本语法\nlocation [=|~|~*|^~] /uri/ { … }\n= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。\n~ 为区分大小写匹配\n~* 为不区分大小写匹配\n!~和!~*分别为区分大小写不匹配及不区分大小写不匹配\n^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式。\n例如:\nlocation = / { # 只匹配 / 查询。\nlocation / { # 匹配任何查询,因为所有请求都已 / 开头。但正则表达式规则和长的块规则将被优先和查询匹配。\nlocation ^~ /images/ { # 匹配任何已 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。\nlocation ~* .(gif|jpg|jpeg)$ { # 匹配任何以 gif、jpg 或 jpeg 结尾的请求。\n++ 文件及目录匹配\n-f和!-f用来判断是否存在文件\n-d和!-d用来判断是否存在目录\n-e和!-e用来判断是否存在文件或目录\n-x和!-x用来判断文件是否可执行\n++ 一些可用的全局变量\n$args …"
November 12, 2010
nginx配置文件中的location中文详解
"location\n语法:location [=|~|~*|^~] /uri/ { … } 默认:否\n上下文:server\n这个指令随URL不同而接受不同的结构。你可以配置使用常规字符串和正则表达式。如果使用正则表达式,你必须使用 ~* 前缀选择不区分大小写的匹配或者 ~ 选择区分大小写的匹配。\n确定 哪个location 指令匹配一个特定指令,常规字符串第一个测试。常规字符串匹配请求的开始部分并且区分大小写,最明确的匹配将会被使用(查看下文明白 nginx 怎么确定它)。然后正则表达式按照配置文件里的顺序测试。找到第一个比配的正则表达式将停止搜索。如果没有找到匹配的正则表达式,使用常规字符串的结果。\n有两个方法修改这个行为。第一个方法是使用 “=”前缀,将只执行严格匹配。如果这个查询匹配,那么将停止搜索并立即处理这个请求。例子:如果经常发生”/”请求,那么使用 “location = /” 将加速处理这个请求。\n第二个是使用 ^~ 前缀。如果把这个前缀用于一个常规字符串那么告诉nginx 如果路径匹配那么不测试正则表达式。\n而且它重要在于 NGINX 做比较没有 URL 编码,所以如果 …"
November 12, 2010
nginx下禁止目录运行php脚本
"为了安全起见,我们一般会对上传目录禁止运行php脚本\n在 apache 下面我们可以通过:\nphp_flag engine off\n的方式来来禁用目录下文件php执行权限。\n那么在 nginx 里面同样可以实现这种方法,那就是location的优先匹配,关于location可以参考我之前的一批文章http://226617.cn/archives/392.htm\n这里简单就举个例子\nlocation ^~ /attachments/\n{\naccess_log off;\n}\n这样 attachments这个目录 就不会再去跳转给fastcgi去执行php了.这里利用了nginx下location指令的处理顺序优先级特点.\n但上面的方法只能算一种技巧,一般不这样设置,正确的方法为:\nlocation /upload/ {\nlocation ~ .*.(php)?$\n{\ndeny all;\n}\n}\n而对于多个目录的话,可以一起进行限定:\nlocation ~* ^/(attachments|images)/.*.(php|php5)$\n{\ndeny all;\n}\n注意这段secion一定要放 …"