虚拟主机配置
虚拟主机通过http中的server段来进行配置,一个最简单的配置如下:
http {
server {
# Server configuration
}
}
listen字段配置监听的IP地址和端口
server {
listen 127.0.0.1:8080;
# The rest of server configuration
}
同时可以用host字段来区分不同的虚拟主机。Nginx 按照下列顺序匹配主机:
- 准确的名称: www.example.org
- 通配符开始泛域名 *.example.org
- 通配符结束的泛域名:mail.*
- 最开始匹配到的正则表达式。
如果请求没有匹配到任何一个,那么匹配到默认主机。
server {
listen 80 default_server;
...
}
location 配置
匹配确定的URL
比如:
location /some/path/ {
...
}
这个会匹配/some/path/document.html, 但是不会匹配/my-site/some/path,因为是从头开始匹配的。
正则表达式匹配
location中可以使用~进行大小写区分匹配,~* 进行大小写不区分匹配。比如:
location ~ \.html? {
...
}
这个location 匹配 url 中包括.html 和.htm
在location中,正则表达式的优先级为,越详细的正则表达式越优先。
返回HTTP控制码
可以通过在location中定义行为来返回指定的http代码。例如:
location /wrong/url {
return 404;
}
location /permanently/moved/url {
return 301 http://www.example.com/moved/here;
}
URL 重写
location /users/ {
rewrite ^/users/(.*)$ /show?user=$1 break;
}
server {
...
rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;
rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra last;
return 403;
...
}