zl程序教程

您现在的位置是:首页 >  其他

当前栏目

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

amp配置代理Nginx 简单 区别 root Alias
2023-09-27 14:27:10 时间

配置简单的代理

例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;
}