解决TTRSS报错:E_URL_SCHEME_MISMATCH配置教程

在使用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/

操作步骤

  1. 登录宝塔面板
  2. 找到网站设置中的反向代理
  3. 编辑现有的反向代理规则
  4. 替换为上述配置代码
  5. 保存配置
  6. 重启Nginx服务

注意事项

  1. 确保TTRSS的config.php中的SELF_URL_PATH配置使用了https
  2. 修改配置后需要清除浏览器缓存
  3. 如果使用了自定义端口,需要修改proxy_pass中的端口号
  4. 确保SSL证书已正确配置

验证方法

配置完成后,访问TTRSS网站,不应再出现SSL相关错误提示。如果仍有问题,可以查看Nginx的错误日志进行排查。

补充说明

此配置同时包含了:

  • HTTPS头部转发
  • WebSocket支持
  • 静态文件缓存处理
  • 基本的安全头部设置

这个配置方案适用于大多数基于宝塔面板的TTRSS部署场景。如有特殊需求,可以根据实际情况调整相关参数。

By 行政