有个简单的 nginx 配置,目前运行没有问题,当前是这样的
server {
# 端口和域名
listen 80;
server_name localhost;
# static 和 media 的地址
location /static/ {
root /opt/izone;
}
location /media/ {
root /opt/izone;
}
# web 服务使用 80 端口,并且添加别名跟本地域名保持一致
location / {
proxy_pass http://web:8000;
}
# 其他配置
client_max_body_size 1m;
client_header_buffer_size 128k;
client_body_buffer_size 1m;
proxy_buffer_size 32k;
proxy_buffers 64 32k;
proxy_busy_buffers_size 1m;
proxy_temp_file_write_size 512k;
}
现在我想实现的是当 url 是 /media/avatar/default.png (仅仅是这个 url,其他 media 下的不要跳转)的时候跳转到 /static/blog/img/default.png ,其他的 /media/还是保持原请求,我做了尝试,在现有的配置中添加如下配置
location /media/avatar/default.png {
alias /static/blog/img/default.png;
}
但是发现根本不起作用(我尝试了把这个新添加的配置放到原有的 /media/前面或者后面都不行,对 nginx 真心不熟悉,求个大佬指点一下
1
taolu 2019-07-02 21:08:13 +08:00 via Android
location = /media/avatar/default.png
=的优先级最高 |
2
arrow8899 2019-07-02 21:20:43 +08:00
location /media/avatar/default.png {
rewrite ^/.*$ /static/blog/img/default.png break; } 或者 location /media/avatar/default.png { alias /opt/izone/blog/img/default.png } |
3
liwb2 2019-07-10 11:38:08 +08:00
location = /media/avatar/default.png {
rewrite ^ /static/blog/img/default.png last; } |