Nginx

通過 Android-Chrome 查看 Confluence 站點多次重定向 URL,但桌面 Chrome 和其他瀏覽器不會

  • March 28, 2019

我剛剛發布了一個 URL 並測試查看它我注意到在 Android 上的 Chrome 中它重定向到以下 URL 的次數太多。我嘗試清除我的 cookie 和瀏覽數據,但它仍然做了同樣的事情。我認為這是我需要更改的網站設置。該站點託管在 Google Cloud 上,它是一個 Confluence 站點,由執行在同一 VM 內的 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;

該問題與伺服器名稱與代理 url 不匹配有關。雖然它以某種方式與桌面一起工作,但顯然它不適用於移動設備。當我將網站從 Google Cloud 移動到我的區域網路時,我可以確認問題與任何記憶體無關,但仍然遇到同樣的問題。

在我使用我的代理confluence.freesoftwareservers.com作為代理名稱之前它可以工作,但是將其更改為www.freesoftwareservers.com公開訪問它的方式修復了它。

這是我從 Atlassian Support 那裡得到的工作連接器(他們很棒,有支持!)

更新:

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

該問題與未使用 NGinX 設置的 TomCat 代理連接器有關。

編輯以下文件:

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

nginx 代理配置似乎沒問題。

但是,Confluence 具有移動特定的部分/內容。

您必須有 http 連結,這些連結在 nginx 中使用您的 http 到 https 重定向創建一個循環。

引用自:https://unix.stackexchange.com/questions/492146