通过 Android-Chrome 查看 Confluence 站点会将 URL 重定向到多次,但桌面 Chrome 和其他浏览器不会

通过 Android-Chrome 查看 Confluence 站点会将 URL 重定向到多次,但桌面 Chrome 和其他浏览器不会

我刚刚发布了一个 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/Prep+Linux+OS+for+GPU+Passthrough+-+Blacklist+nouveau+and+use+vfio-pci+drivers+script

另一个测试网址: 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://community.atlassian.com/t5/Confluence-questions/Can-t-view-site-on-Mobile-browser-Redirects-to-many-times/qaq-p/1033424

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"/>

相关内容