首页 > 技术文章 > nginx 配置静态资源路径(url不同于static path)

wangbaojun 2019-03-21 18:06 原文

目的

        用nginx做静态资源代理可以减少请求对后台服务器的压力,使响应更加迅速。

配置

       情景一
          url : 127.0.0.1:8000/images/abc.jepg      path:  /static/iamges/abc.jepg
         这种情况很容易配置:
 
    server {
        listen 8000;
        server_name myserver;
        client_max_body_size 251m;
        
        location /images/ {
            root /static/;
        }
        location / {
            include uwsgi_params;
            uwsgi_read_timeout 10;
            uwsgi_pass 0.0.0.0:8001;  #uswgi
        }
    }
 
 
        
      情景二
        url: 127.0.0.1:8000/images/abc.jepg     path:  /static/imgs/abc.jepg
        这时如果再向前面一样配置,就会发生404错误,因为images 不等于imgs,匹配会失败,那怎么解决呢?
        解决方法:使用alias 代替 root
    server {
        listen       8000;
        server_name  10.239.219.156;
        client_max_body_size    251m;

        location  /images/ {
            alias /static/imgs/;
        }
        
        location / {
            include uwsgi_params;
            uwsgi_read_timeout 10;
            uwsgi_pass 0.0.0.0:8001;  #uswgi
        }
    }
 
 
         解释:root属性指定的值是要加入到最终路径的,情景一就将位置变为了:/static/images/abc.jepg
                   情景二中,我们不希望把url路径放入文件path中,就需要用到alias属性,alias会抛弃uri,直接访问alias指定路径,也就是/static/imgs/abc.jepg



来自为知笔记(Wiz)



推荐阅读