服务器问答

nginx 配置, url 跳转问题
0
2021-05-19 21:09:21
idczone

有个简单的 nginx 配置,目前运行没有问题,当前是这样的

server {
    # 端口和域名
    listen 80;
    server_name lo国外服务器calhost;

    # 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 真心不熟悉,求个大佬指点一下


location = /media/avatar/default.png
=的优先级最高

location /media/avatar/default.png {
rewrite ^/.*$ /static/blog/img/default.png break;
}
或者
location /media/avatar/default.png {
alias /opt/izone/blog/img/default.png
}

location = /media/avatar/default.png {
rewrite ^ /static/blog/img/default.png last;
}

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服