在使用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部署场景。如有特殊需求,可以根据实际情况调整相关参数。
