尝试使用 proxy_pass 覆盖特定的 http 标头

尝试使用 proxy_pass 覆盖特定的 http 标头

我尝试使用 Nginx 覆盖后端服务器提供的 wasm 资源的内容类型

如下 :

        location / {
            rewrite ^(/.*)$ $1 break;

            # Match requests ending with .wasm
            if ($uri ~* \.wasm$) {
                  rewrite ^ /bogus last;
            }
            add_header "X-Debug" $uri;
            proxy_pass http://127.0.0.1:5173;
    }

    location = /bogus {
            access_log /var/log/nginx-bogus.log;
            internal;
            proxy_pass  http://127.0.0.1:5173;
            proxy_hide_header       Content-Type;
            add_header Content-Type application/wasm;
    }

我唯一的问题是,它没有按预期工作,我觉得我的请求没有按预期重定向,

我在这里做错了什么?

谢谢你的帮助

答案1

不需要rewrite。只需使用两个locations 即可。

location / {
    proxy_pass http://127.0.0.1:5173;
    add_header "X-Debug" $uri;
}

location ~ \.wasm$ {
    access_log /var/log/nginx-bogus.log;
    proxy_pass http://127.0.0.1:5173;
    proxy_hide_header Content-Type;
    add_header "X-Debug" $uri;
    add_header Content-Type application/wasm;
}

相关内容