![通过 Android-Chrome 查看 Confluence 站点会将 URL 重定向到多次,但桌面 Chrome 和其他浏览器不会](https://linux22.com/image/145567/%E9%80%9A%E8%BF%87%20Android-Chrome%20%E6%9F%A5%E7%9C%8B%20Confluence%20%E7%AB%99%E7%82%B9%E4%BC%9A%E5%B0%86%20URL%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E5%A4%9A%E6%AC%A1%EF%BC%8C%E4%BD%86%E6%A1%8C%E9%9D%A2%20Chrome%20%E5%92%8C%E5%85%B6%E4%BB%96%E6%B5%8F%E8%A7%88%E5%99%A8%E4%B8%8D%E4%BC%9A.png)
我刚刚发布了一个 URL 并测试了查看它,我注意到在 Android 上的 Chrome 中,它会多次重定向到以下 URL。我尝试清除 cookie 和浏览数据,但仍然出现同样的情况。我认为这是我需要更改的网站设置。该站点托管在 Google Cloud 上,它是一个 Confluence 站点,由同一虚拟机内运行的 NGinX 服务器代理。
测试用例:
- 从 Android-Chrome 导航到“测试 URL”并重定向到“错误 URL”--> 为什么?/如何修复?
- 在 Android-Chrome 上请求“桌面站点”并导航到“测试 URL”并获取预期 URL
- 通过 Android-Firefox 导航到“测试 URL”并获取预期的 URL
- 在台式电脑 (Win10) 上的 Chrome/FireFox/Edge/IE(任何浏览器)上导航到“测试 URL”,并获取预期的 URL!
另一个测试网址: https://www.freesoftwareservers.com/display/FREES/Free+Software+Servers
错误网址: https://www.freesoftwareservers.com/#content/view/327684
注意:另一位用户已确认这是 Android Chrome 的特定问题,但与 Android Firefox 或桌面 Chrome 无关。即使使用 Android Chrome,当请求桌面版本时它也可以工作!
更新:这是我的 NGinX 配置
##Confluence
server {
listen 80;
server_name www.freesoftwareservers.com freesoftwareservers.com;
return 301 https://www.freesoftwareservers.com/;
}
server {
listen 443 ssl;
server_name www.freesoftwareservers.com freesoftwareservers.com;
rewrite ^/wiki / permanent;
location / {
proxy_pass http://localhost:8091/;
include /etc/nginx/proxy.conf;
}
}
root@confluence:/etc/nginx/sites-enabled# cat /etc/nginx/proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffers 32 4k;
答案1
nginx 代理配置看起来没问题。
但是,Confluence 有移动特定部分/内容。
您必须拥有在 nginx 中使用 http 到 https 重定向创建循环的 http 链接。
答案2
该问题与服务器名称与代理 URL 不匹配有关。虽然它在桌面上可以正常工作,但显然在移动设备上却无法正常工作。我可以确认问题与任何缓存无关,因为我将网站从 Google Cloud 移至我的 LAN 后仍然遇到同样的问题。
在我将我的代理用作confluence.freesoftwareservers.com
代理名称并且它有效之前,但是将其更改为www.freesoftwareservers.com
公开访问的方式修复了它。
这是我从 Atlassian 支持处获得的工作连接器(他们的支持非常棒!)
更新:
https://www.freesoftwareservers.com/display/FREES/Confluence+HTTPS+SSL+Reverse+Proxy+via+NginX
该问题与 TomCat 代理连接器有关不适用于 NGinX 设置。
编辑以下文件:
nano /opt/atlassian/confluence/conf/server.xml && service confluence restart
这是通过 NGinX 和 HTTPS 进行代理的工作配置
<Server port="8000" shutdown="SHUTDOWN" debug="0">
<Service name="Tomcat-Standalone">
<!--
=================================================================================$
DEFAULT - Direct connector with no proxy, for unproxied HTTP access to Confluence.
If using a http/https proxy, comment out this connector.
=================================================================================$
-->
<Connector port="8090"
maxThreads="200"
minSpareThreads="25"
connectionTimeout="20000"
enableLookups="false"
maxHttpHeaderSize="8192"
protocol="HTTP/1.1"
useBodyEncodingForURI="true"
redirectPort="8443"
acceptCount="100"
disableUploadTimeout="true"
scheme="https"
proxyName="www.freesoftwareservers.com"
proxyPort="443"/>