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