【问题标题】:How do I tell TYPO3 what it's URL is when using a reverse proxy?使用反向代理时如何告诉 TYPO3 它的 URL 是什么?
【发布时间】:2017-03-30 13:18:24
【问题描述】:
我有:
- 网址 www.my-website.com
- 一台运行 TYPO3 的机器,其主机名如typo3-website.my.internal.domain.com
- 一台运行 Nginx 的机器,它使用 proxy_pass 将请求从 www.my-website.com 发送到typo3-website.my.internal.domain.com
- www.my-website.com 的 DNS A 记录指向反向代理机器。
当后端用户在页面模块中工作时,他们在页面上右键单击“显示”,它会尝试以运行 TYPO3 的机器的主机名打开页面。
我希望它改为在实际网站 URL 下打开页面。
我需要更改什么设置才能使其正常工作?
我已经尝试过但没有帮助的事情:
- 设置可信主机模式
- 'reverseProxyIP' => '*'
- 'reverseProxyHeaderMultiValue' => '最后'
【问题讨论】:
标签:
nginx
typo3
reverse-proxy
typo3-7.6.x
【解决方案1】:
我需要创建一个domain record。这部分修复了它。
这仍然存在图像在后端使用错误 URL 的问题。
这意味着,例如,页面树模块中的小虚线不显示。
为了解决这个问题,我使用了来自 this forum thread 的线索。我需要将 HTTP_HOST 变量设置为我的域并将其发送到 PHP fpm:
location ~ \.php$ {
try_files $uri = 404;
include ${pkgs.nginx}/conf/fastcgi.conf;
fastcgi_pass unix:/var/run/phpfpm/default.sock;
# Assorted fastcgi_blah
fastcgi_param HTTP_HOST "www.my-domain.com";
}
【解决方案2】:
如果您试图让 TYPO 将请求视为对特定域的请求,您可能希望在您的代理块上使用以下内容:
proxy_set_header Host $proxy_host;