用nginx反向代理给qbit实现https访问,99%的设置都和【Linux下用Nginx给File Browser设置SSL开启HTTPS访问】一样,没错,又是99%的内容都是和filebrowser那篇一样。但还是那个问题,直接照搬的话会有一个坑,完成配置以后,用https访问qbit-webui会显示空白页面并提示unauthorized

很明显这是碰到了一个安全设置问题,访问被qbit拒绝了。

有两个解决方案。

方案一:关闭qbit的一些安全设置

qbit webui设置中的【启用host header属性验证】和【启用跨站请求伪造保护】两个功能去掉勾选。

1689511007915.png

方案二:修改nginx反向代理的配置

参考qbit【官方wiki给出的方案】,调整nginx中的一些配置。

假定原规则如下:

location / {
    proxy_pass http://localhost:8089;
}

调整以后的配置如下:

location / {
    proxy_pass http://localhost:8089;

    proxy_http_version 1.1;
    proxy_set_header   Host               localhost:8089;
    proxy_set_header   X-Forwarded-Host   $http_host;
    proxy_set_header   X-Forwarded-For    $remote_addr;

    # qbit版本v4.2.2以上加入这条保护cookie安全
    proxy_cookie_path  /                  "/; Secure";
}

使用以上配置以后,实测qbit webui中可以开启安全设置,注意服务器域名哪里要填localhost

1689512820260.png