You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何我的URL在Traefik+tt-rss环境下被异常修改?

问题分析与解决方案

核心原因

请求URL被修改为内网端口的HTTP地址,并非Alamofire或iOS URL解析异常,而是tt-rss服务器返回了重定向响应,将请求导向了它在Traefik后方的内网端口(8889)和HTTP协议。iOS的URLSession(Alamofire基于此实现)自动遵循重定向后,触发了App Transport Security(ATS)的安全限制(ATS默认禁止HTTP请求)。

为什么tt-rss会返回错误的重定向?

tt-rss默认使用自身的内网端口和协议生成重定向URL,它不知道自己被Traefik反向代理托管,因此无法识别公网的HTTPS地址和端口。

解决方法

方法1:配置Traefik传递正确的请求头

让Traefik向tt-rss传递外部请求的真实协议、主机和端口,tt-rss会根据这些头生成正确的公网URL。

添加Traefik中间件配置(YAML示例):

http:
  middlewares:
    ttrss-proxy-headers:
      headers:
        customRequestHeaders:
          X-Forwarded-Proto: "https"
          X-Forwarded-Host: "ttrss.example.com"
          X-Forwarded-Port: "443"

将该中间件绑定到tt-rss的路由规则上,确保tt-rss能接收到这些头信息。

方法2:直接修改tt-rss配置强制指定公网地址

在tt-rss的config.php配置文件中添加以下定义,强制tt-rss使用公网HTTPS地址生成所有内部URL和重定向:

define('SELF_URL_PATH', 'https://ttrss.example.com/');
define('HTTP_PROTOCOL', 'https');

验证

修改配置后重新发起Alamofire请求,抓包确认tt-rss不再返回指向内网HTTP地址的重定向,ATS错误即可解决。

内容的提问来源于stack exchange,提问作者Milo Gertjejansen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 19:05:45