【Nginx配置】代理转发静态文件之root与alias----很重要

1.root与alias的区别

1.1 首先看如下配置:

server {
       listen       8081;
       server_name  nginx-study.nrsc.com;

       #访问路径:http://nginx-study.nrsc.com:8081/yoyo/a.html
       #a.html在服务器上的绝对路径为:/usr/local/nrsc-programs/html/yoyo/a.html

       location /yoyo {

               root /usr/local/nrsc-programs/html/;
       }

       #访问路径:http://nginx-study.nrsc.com:8081/target/b.html
       #b.html在服务器上的绝对路径为:/usr/local/nrsc-programs/html/yoyo/b.html

       location /target {

               alias /usr/local/nrsc-programs/html/yoyo/;
       }
   }

按照上面注释中的路径进行访问,可以分别获得到a页面和b页面,效果分别如下:
在这里插入图片描述

1.2 root与alias到底有啥区别???

  • 仔细看下面的图,肯定就能明白了:

在这里插入图片描述

  • 小结一下
    假如location匹配到了/XXX,未匹配到/YYY,则:
    • 用root : 访问到的静态资源为root后的路径/XXX/YYY
    • 用alias :访问到的静态资源为root后的路径/YYY

2. 巩固

2.1上面讲的如果真的明白了,就可以很清楚的知道下面的配置中,第二个配置是错误的.

server {
        listen       8082;
        server_name  nginx-study.nrsc.com;
		
		#访问路径:http://nginx-study.nrsc.com:8082/index-page1 ----> 可以访问到
        #c.html在服务器上的绝对路径为:/usr/local/nrsc-programs/html/yoyo/c.html
        #index后面的页面是缺省进入的页面
		
		location /index-page1 {

                alias /usr/local/nrsc-programs/html/yoyo/;
				index c.html;
        }
		
		
		#访问路径:http://nginx-study.nrsc.com:8082/index-page2 ----> 无法访问到
        #d.html在服务器上的绝对路径为:/usr/local/nrsc-programs/html/yoyo/d.html

        location /index-page2 {

                root /usr/local/nrsc-programs/html/yoyo/;
				index d.html;
        }
		
		#访问路径:http://nginx-study.nrsc.com:8082 ----> 可以访问到
        #c.html在服务器上的绝对路径为:/usr/local/nrsc-programs/html/yoyo/d.html
		
		location /{

                root /usr/local/nrsc-programs/html/yoyo/;
				index d.html;
        }
    }

2.2 稍微讲讲index

讲解内容看下图,两句话总结一下:

  • index后面的页面为缺省页面
  • index后的页面可以配置多个,按照先后顺序,先被匹配到的页面就是你访问到的页面.

在这里插入图片描述

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx中,rootalias都用于指定静态文件的根目录,但它们的用法和效果略有不同。 1. rootnginx配置文件中,root指令用于指定静态文件的根目录。例如: ``` server { listen 80; server_name example.com; root /var/www/example.com; } ``` 这里的root指定了example.com域名下静态文件的根目录为/var/www/example.com。当用户访问http://example.com时,nginx会在/var/www/example.com目录中寻找相应的静态文件,如index.html。 需要注意的是,root指令所指定的路径是相对于nginx配置文件的路径。因此,如果nginx配置文件位于/etc/nginx目录下,而静态文件的根目录位于/var/www/example.com目录下,则root指令应写成: ``` root /../../var/www/example.com; ``` 其中的”../”表示向上一级目录。 2. alias alias指令也用于指定静态文件的根目录,但它的用法和效果略有不同。alias指令可以将请求的URL路径映射到服务器上的实际文件路径。例如: ``` server { listen 80; server_name example.com; location /img/ { alias /var/www/example.com/static/img/; } } ``` 这里的alias指定了URL路径/img/映射到/var/www/example.com/static/img/目录下的静态文件。当用户访问http://example.com/img/logo.png时,nginx会在/var/www/example.com/static/img/目录下寻找相应的静态文件,如logo.png。 需要注意的是,alias指令所指定的路径是绝对路径。因此,如果alias指令所指定的路径是/var/www/example.com/static/img/,则在nginx配置文件中应写成: ``` alias /var/www/example.com/static/img/; ``` 而不是: ``` alias ../../var/www/example.com/static/img/; ``` 因为alias指令不会将路径解析为相对路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值