nginx 跳转例子

Posted on Posted in nginx
Tips: 本文创建于2016年1月6日,已超过 2 年,内容或图片可能已经失效!

nginx location

  • = 开头表示精确匹配
  • ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
  • ~ 开头表示区分大小写的正则匹配
  • ~* 开头表示不区分大小写的正则匹配
  • !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
  • / 通用匹配,任何请求都会匹配到。

例子:

location = / {  
   #规则A  
   # 访问根目录/, 比如http://localhost/  
}  
location = /login {  
   #规则B  
   # http://localhost/login  
}  
location ^~ /static/ {  
   #规则C  
    # http://localhost/static/a.html  
    # http://localhost/static/c.png  
}  
location ~ .(gif|jpg|png|js|css)$ {  
   #规则D  
    # http://localhost/a.gif  
}  
location ~* .png$ {  
   #规则E  
    # http://localhost/a.PNG  
}  
location !~ .xhtml$ {  
   #规则F  
}  
location !~* .xhtml$ {  
   #规则G  
}  
location / {  
   #规则H  
   # http://localhost/register  
    # http://localhost/category/id/1111  
}  
location = / {  
    proxy_pass http://tomcat:8080/index  
}  
location ^~ /static/ {  
    root /webroot/static/;  
}  
location ~* .(gif|jpg|jpeg|png|css|js|ico)$ {  
    root /webroot/res/;  
}  
location / {  
    proxy_pass http://tomcat:8080/  
}  

判断表达式

  • -f和!-f用来判断是否存在文件
  • -d和!-d用来判断是否存在目录
  • -e和!-e用来判断是否存在文件或目录
  • -x和!-x用来判断文件是否可执行

例:http://localhost:88/test1/test2/test.php

$host:localhost  
$server_port:88  
$request_uri:http://localhost:88/test1/test2/test.php  
$document_uri:/test1/test2/test.php  
$document_root:D:nginx/html  
$request_filename:D:nginx/html/test1/test2/test.php  

一些可用的全局变量

$args  
$content_length  
$content_type  
$document_root  
$document_uri  
$host  
$http_user_agent  
$http_cookie  
$limit_rate  
$request_body_file  
$request_method  
$remote_addr  
$remote_port  
$remote_user  
$request_filename  
$request_uri  
$query_string  
$scheme  
$server_protocol  
$server_addr  
$server_name  
$server_port  
$uri  
» 转载请注明来源:若我若鱼 » nginx 跳转例子

One thought on “nginx 跳转例子

Leave a Reply to Streaming Hentai Online Free Cancel reply

Your email address will not be published. Required fields are marked *

5 + 13 =