Nginx location初识

来源:互联网 发布:南威软件好吗 编辑:程序博客网 时间:2024/06/05 17:05

server

listen               监听的端口

server_name    服务的名字

(ps.listen中会有一个default(不同版本的Nginx的default标签会不同),在具有相同的监听端口(listen)时,你的浏览器中访问的域名和server_name来进行区分,如果server_name没有匹配上,就选用默认匹配的端口。相同的端口,server配置比较前面的内容会被Nginx默认为默认的端口)

优先级:

listen>server_name>default>server在文件中的位置

location        对服务中的目录进行配置

resolver       dns服务的IP地址,一般用在正向代理中

location

Nginx location匹配规则:

语法规则: location [=|~|~*|^~] /uri/ { … }      (ps.uri表示的是http://write.blog.csdn.net/postedit中的/postedit)

=                         表示精确匹配

^~                       表示uri以某个常规字符串开头,可以理解为匹配url即可。

~                         表示区分大小写的正则表达式,和linux的正则表达式有点像,也许就是同一个,至少没有发现不同点。

~*                       表示不区分大小写的正则表达式。

网上有说可以用!来表示‘否’,但是尝试了几遍,发现不行。

在尝试location的正则表达式,匹配到最能匹配的,其中精确匹配=的优先度最高。

(猜测,一般location匹配的应该都是目录)

范例:

location = / {

     #匹配根目录,即http://www.csdn.net/

     #规则一

}


location / {

     #默认最后匹配的,任何没有匹配上的其他location的都使用这个location。

}


location = /one/ {

    #精确匹配uri的/one/,即http://www.csdn.net/one/

}


location = /one {

    #此写法在Nginx0.76版本,和上面的一样

}


location ~ "正则表达式" {

    #大小写都要匹配该正则表达式,当正则表达式中有{ ;等字符,最好就要带上引号。

}


location中部分内容:

       root                        设置根目录

       proxy_pass          设置代理的url

       proxy_set_header Host $host;       设置头部的Host内容

       proxy_set_header Host $host;       设置用户访问的IP地址

。。。。等等各种。。。。

upstream

等待进一步研究,不过反向代理的时候貌似必须使用。



参考:

http://nginx.org/cn/    详细的各个模块内容;

http://blog.sina.com.cn/s/blog_97688f8e0100zws5.html