配置简单的代理
例1
当你访问地址中匹配到 cdn.cmvalue.com/repo/october-web/yl-homepage-master/
中就会去找你本地的 /Users/zhangyu/web/yongliu/yl-homepage/
文件。
server {
listen 80;
server_name cdn.cmvalue.com;
add_header Access-Control-Allow-Origin *;
location /repo/october-web/yl-homepage-master {
alias /Users/zhangyu/web/yongliu/yl-homepage/;
index index.html index.htm index.php;
autoindex on;
try_files $uri $uri/ /index.html;
}
}
配置你本机的host:127.0.0.1 cdn.cmvalue.com
例2
当你访问地址中匹配到 assets.dxycdn.com
中就会去找你本地的 /Users/zhangyu/web/
文件。
server {
listen 80;
server_name assets.dxycdn.com;
add_header Access-Control-Allow-Origin *;
location / {
root /Users/zhangyu/web/;
index index.html index.htm index.php;
autoindex on;
try_files $uri $uri/ /index.html;
# rewrite ^(.+)\-min\.(js|css)(.*)$ $1.$2$3 last;
# nginx-http-concat
# concat on;
# concat_max_files 20;
# concat_types text/css application/javascript;
}
}
配置你本机的host:127.0.0.1 assets.dxycdn.com
root和alias区别
最基本的区别:alias指定的目录是准确的,root是指定目录的上级目录,并且该上级目录要含有location指定名称的同名目录。另外,根据前文所述,使用alias标签的目录块中不能使用rewrite的break。
- alias虚拟目录配置中,location匹配的path目录如果后面不带"/",那么访问的url地址中这个path目录后面加不加"/“不影响访问,访问时它会自动加上”/";
但是如果location匹配的path目录后面加上"/",那么访问的url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败! - root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问。
所以,一般情况下,在nginx配置中的良好习惯是:
- 在location /中配置root目录;
- 在location /path中配置alias虚拟目录。
举例:
bad
location /images/ {
alias /data/w3/images/;
}
good
location /images/ {
root /data/w3;
}