在使用TTRSS时遇到以下错误提示:
E_URL_SCHEME_MISMATCH
URL scheme reported by your browser (https) doesn't match server-configured SELF_URL_PATH (http), check X-Forwarded-Proto.
Additional information:
SELF_URL_PATH: http://rss.886699.xyz
CLIENT_LOCATION: https://rss.886699.xyz/
目录
原因分析
这个错误主要是因为HTTPS配置不完整导致的,具体来说是反向代理没有正确传递HTTPS的相关头信息到后端服务。
解决方案
配置文件位置
/www/server/panel/vhost/nginx/proxy/你的域名/*.conf
修改为:
#PROXY-START/
location ^~ /
{
proxy_pass http://127.0.0.1:181;
# 基础头部设置
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
# 添加HTTPS相关头部
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header HTTPS "on";
# WebSocket支持
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_http_version 1.1;
# 缓存配置
add_header X-Cache $upstream_cache_status;
set $static_fileJkBBfeI2 0;
if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" )
{
set $static_fileJkBBfeI2 1;
expires 1m;
}
if ( $static_fileJkBBfeI2 = 0 )
{
add_header Cache-Control no-cache;
}
}
#PROXY-END/
操作步骤
- 登录宝塔面板
- 找到网站设置中的反向代理
- 编辑现有的反向代理规则
- 替换为上述配置代码
- 保存配置
- 重启Nginx服务
注意事项
- 确保TTRSS的config.php中的SELF_URL_PATH配置使用了https
- 修改配置后需要清除浏览器缓存
- 如果使用了自定义端口,需要修改proxy_pass中的端口号
- 确保SSL证书已正确配置
验证方法
配置完成后,访问TTRSS网站,不应再出现SSL相关错误提示。如果仍有问题,可以查看Nginx的错误日志进行排查。
补充说明
此配置同时包含了:
- HTTPS头部转发
- WebSocket支持
- 静态文件缓存处理
- 基本的安全头部设置
这个配置方案适用于大多数基于宝塔面板的TTRSS部署场景。如有特殊需求,可以根据实际情况调整相关参数。