一直在用 rclone serve http 来提供 onedrive 的访问,然后 nginx 反向代理之,但是这个 rclone 对非 html 只能提供 application/octet-stream
的 Content-Type
,非常的不友好,其实我希望 .txt/.md 文件能输出纯文本,而不是点击了之后浏览器一直下载。
最后实现
location ^~ /cookbooks/ {
auth_basic off;
proxy_pass http://127.0.0.1:8082/;
proxy_hide_header Content-Type; # 隐藏代理服务器的 Content-Type
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 这里要通过 $request_filename 文件后缀正则匹配实现,通过 location 是实现不了的,会 not found
if ($request_filename ~* \.(txt|xml|py|md)$) {
add_header Content-Type "text/plain; charset=utf-8" always;
}
}