nginx:配置简单的代理&root和alias区别

配置简单的代理

例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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lvan的前端笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值