目的
用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