由于公开的 NSFW-API 服务所占用的资源越来越多,位于腾讯云的境外服务器内存已经开始捉襟见肘了,所以就把该服务迁移到了国内空闲资源较多的这台服务器上。

由于之前服务使用的域名 api.roywang.dev 是没用备案的,所以只能使用已经国内的备案域名。为了无缝衔接,只得将 api.roywang.dev 重定向至 api.roy.wang。

配置服务和重定向的操作完成后,测试了一下,很多 NSFW 图片还是轻松过审了,查看了网站日志,发现NGINX 在重定向时,将 api.roywang.dev 的 POST 操作给转换成为了 GET,以至于产生了404错误,导致服务失效。

在整理解决办法的时候,无意中看到:“由于某些原因,在使用用户代理时,301、302会将 POST 方法改为 GET 方法,307、308在重定向时不允许浏览器将 POST 请求重定向为 GET 请求”

将重定向方式从 301/302 改为 307/308即可

NGINX 重定向配置:

#REWRITE-START
        if ($host ~ '^api.roywang.dev'){
            return 307 https://api.roy.wang$request_uri;
        }
#REWRITE-END

《记一次 POST 请求 重定向的错误》