NextCloud 使用https反向代理后PC端異常


NextCloud 使用https反向代理后PC端異常

 

NextCloud安裝在家里自己之前攢的主機上,通過阿里雲的ecs服務器做了中轉,綁定了https域名后瀏覽器訪問沒啥問題,PC端在錄入完域名地址重新鏈接時,一直提示"盡管登錄url以https開頭,但輪詢url中沒有*******"。百度一波后才知道,需要在NextCloud中配置代理白名單,以及代理訪問協議。如下圖:
image.png

其中trusted_proxies參數設置為包含代理服務器IP地址的數組,
overwritehost 是指實際代理使用的域名
overwriteprotocol 是指代理訪問所使用的協議

參考答案&以下內容-來源地址:

可以對Nextcloud配置反向代理,使反向代理服務緩存諸如圖片、CSS、JS這樣的靜態文件,或將處理HTTPS請求的負載轉移到其他服務器上,也可以利用多台服務器配置負載平衡。

參數格式

下文中所介紹的參數需要添加到config/config.php文件中的$CONFIG = array (...)中才可生效,格式遵守PHP數組的語法

定義可信代理

安全起見,你必須為Nextcloud指定可以信賴的反向代理服務器。來自可信代理的請求將會被做特殊處理以獲取客戶端的真實信息,確保訪問控制和日志不會出錯。相關的參數可以在config/config.php中設置。

trusted_proxies參數設置為包含代理服務器IP地址的數組,以定義Nextcloud可以信任的代理服務器。此參數可防止客戶端受到欺騙,您應像保護您的Nextcloud服務器一樣保護這些服務器。

一個反向代理服務應該能夠在HTTP頭部中包含客戶端的真實IP,Nextcloud能夠使用這樣的HTTP頭部獲取客戶端的IP地址。Nextcloud默認使用實際中的標准頭部'X-Forwarded-For',如果你想修改默認值,可以在forwarded-for-headers參數中設置。該參數是一個PHP字符串查找數組,例如 ‘X-Forwarded-For’ 要寫成‘HTTP_X_FORWARDED_FOR’,如果設置不正確,客戶端的IP地址對於Nextcloud來說是不可見的。至於頭部中'X-Forwarded-For'的取值,將取決於反向代理服務器的配置。

一般的,對於Nginx,我們可以添加如下內容到location{}塊中,使Nginx在客戶端請求的HTTP頭部標出客戶端的真實IP,然后傳給后端的Nextcloud。

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

覆蓋參數

Nextcloud對主機名,協議或web目錄的自動檢測可能會在使用反向代理服務器的某些情況下失效。該配置用於手動覆蓋自動檢測。

如果Nextcloud未能成功地檢測到主機名、協議和web目錄,你可以使用config/config.php中的overwrite參數來覆蓋它們。overwritehost參數用於設定反向代理服務器的主機名,可以同時指定端口號。overwriteprotocol參數用於設定反向代理服務器所使用的協議,有HTTP和HTTPS兩種協議可選。overwritewebroot用於指定Nextcloud的目錄,需使用絕對目錄。如果你想讓自動檢測功能只對其中的一個或幾個參數生效,只需將這些參數刪除或將它的值留空。overwritecondaddr參數用於覆蓋原本取決於遠程客戶端的IP地址,該項的值應當是一個代理服務器的IP地址的正則表達式。當你代理的是一個只允許HTTPS的Nextcloud實例並且想為HTTP請求使用自動檢測時,這一項十分有用。

例子

多域名的反向SSL代理

如果你想要通過IP地址為10.0.0.1的反向代理服務器https://ssl-proxy.tld/domain.tld/nextcloud 通過HTTPS請求訪問http://domain.tld/nextcloud,你可以在config/config.php中添加如下內容:

[10.0.0.1],
overwritehost     => ssl-proxy.tld,
overwriteprotocol => https,
overwritewebroot  => /domain.tld/nextcloud,
overwritecondaddr => ^10\.0\.0\.1$,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM