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