location指令的作用是根据用户请求的URI来执行不同的应用,也就是根据用户请求的网站URL进行匹配,匹配成功即进行相关的操作。
location的语法 已=开头表示精确匹配 如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。 ^~ 开头表示uri以某个常规字符串开头,不是正则匹配 ~ 开头表示区分大小写的正则匹配; ~* 开头表示不区分大小写的正则匹配 / 通用匹配, 如果没有其它匹配,任何请求都会匹配到
可以根据域名判断跳转不同服务
#当客户端访问www.abc.com,监听端口号为80,直接跳转到data/www目录下文件 server { listen 80; server_name www.abc.com; location / { root data/www; index index.html index.htm; } } #当客户端访问www.abc.com,监听端口号为80,直接跳转到data/bbs目录下文件 server { listen 80; server_name bbs.abc.com; location / { root data/bbs; index index.html index.htm; } }
可以根据端口判断跳转不同服务
#当客户端访问www.abc.com,监听端口号为8080,直接跳转到data/www目录下文件 server { listen 8080; server_name 8080.a393060727.com; location / { root data/www; index index.h