設定 Nextcloud 的公共 URL,以便它可以存取自身。
透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。
將 Nextcloud 的規格基本 URL 設定為使用者實際使用的位址,然後確保 Nextcloud 伺服器能夠解析並連接到該位址。對於典型的 HTTPS 安裝,關鍵設定是overwrite.cli.url;如果 Nextcloud 位於反向代理程式之後,則僅在您的設定需要時才修正轉送協定或 Web 根目錄。
「伺服器沒有出站指向位址」的警告可能指的是 Nextcloud 無法產生或驗證指向其自身 Web 服務的位址。在目前的 Nextcloud 文件中,一些設定檢查要求 Web 伺服器能夠存取其受信任的網域或已配置的網域overwrite.cli.url。這與一般的「無網際網路連線」警告不同,後者指的是出站 DNS、防火牆或代理存取外部服務的問題。
選擇使用者通常輸入的穩定 URL。例如,如果使用者開啟的是 `/etc/example.com` https://cloud.example.com,則使用完全相同的協定和主機名稱。如果安裝程式位於子目錄中(例如 `/etc/example.com`)https://example.com/nextcloud,則應將其包含/nextcloud在基本 URL 中。如果產生的連結需要對外部使用者有效,請避免使用 `/etc/example.com`localhost或私有容器名稱作為規範 URL。
Nextcloudoverwrite.cli.url在常規瀏覽器請求之外產生連結時(包括命令列和後台作業上下文),會使用預設的 URL 作為其規範的基本 URL。因此,當警告或連結失效是由安裝過程中推斷出的 URL 錯誤引起時,這是一個合適的設定。
occ在標準的 Linux 系統中,切換到包含`--native-files` 的Nextcloud 目錄/var/www/nextcloud,並以 web 伺服器使用者身分執行以下命令:
cd /var/www/nextcloud
sudo -u www-data php occ config:system:set overwrite.cli.url --value="https://cloud.example.com"
請將範例 URL 替換為您的真實公網位址。對於子目錄安裝,請包含其路徑,例如 `/etc/webserver/` https://example.com/nextcloud。如果您的安裝使用了不同的 Web 伺服器帳戶、容器或軟體包佈局,請使用該部署文件中記錄的方法來執行 `pip install` occ;上述路徑和帳戶並非通用。
您也可以編輯現有條目config/config.php,並在陣列中新增此條目$CONFIG:
'overwrite.cli.url' => 'https://cloud.example.com',
請勿建立第二個陣列或覆蓋檔案的其餘部分。如果後面還有其他條目,請保留末尾的逗號。手動編輯前,$CONFIG請在活動目錄之外建立備份;Nextcloud 可能會從該目錄載入以 .ts 結尾的其他檔案作為即時設定。config.config.php
反向代理接收公共 HTTPS 請求並將其轉送至 Nextcloud,有時會透過私有網路上的純 HTTP 協定進行轉送。 Nextcloud 在建立自身 URL 時,可能會推斷出錯誤的協定、主機名稱或路徑。官方反向代理指南建議僅在自動偵測失敗時才使用覆蓋參數,並將代理位址列在 `<path>` 標籤下trusted_proxies。
10.0.0.1對於在 上執行 Nextcloud 服務的代理伺服器https://cloud.example.com/nextcloud,現有組態陣列中的相關條目如下所示:
'trusted_proxies' => ['10.0.0.1'],
'overwriteprotocol' => 'https',
'overwritewebroot' => '/nextcloud',
'overwrite.cli.url' => 'https://cloud.example.com/nextcloud',
請使用 Nextcloud 實際看到的代理程式位址和部署中的公共路徑。對於根域安裝,overwritewebroot除非特定代理程式配置需要,否則請省略此步驟。 Nextcloud 指出,overwritehost在大多數情況下,此步驟是不必要的,因為它可以讀取代理轉送的主機名稱;只有在必須強制使用一個主機名稱時才需要設定。不正確的代理信任或轉送標頭設定會影響客戶端 IP 位址的解析方式,因此請勿在未檢查拓樸結構的情況下複製範例位址。
從 Nextcloud 主機進行測試,或者如果服務運行在 Docker 中,則從 Nextcloud 容器進行測試。首先檢查名稱解析,然後發出 HTTPS 請求:
getent ahosts cloud.example.com
curl -I https://cloud.example.com/status.php
主機名稱應解析到預期的可存取位址,並且請求應從 Nextcloud 傳回無憑證錯誤的 HTTP 回應。從您的筆記型電腦成功發出請求並不能證明伺服器可以存取相同的 URL。位於路由器後面的家庭伺服器在嘗試從區域網路內部存取其自身的公網位址時可能會失敗;這通常被稱為環回 NAT 或 NAT 回環問題。設定分離式 DNS,使相同的公用主機名稱在內部解析到反向代理的區域網路位址,或啟用路由器支援的回環功能。保持規範 URL 的公開,以確保發送給遠端使用者的連結仍然有效。
不要透過curl -k證明 HTTPS 正常來「修復」憑證問題。請安裝或設定 Nextcloud 運作所在的系統或容器所信任的憑證鏈,然後正常重複測試。
如果管理頁面明確顯示 Nextcloud 沒有可用的網路連線或無法存取多個外部端點,overwrite.cli.url僅進行變更無法恢復網路出站連線。請檢查伺服器的 DNS 解析和出站防火牆規則。如果您的網路需要 HTTP 代理,請配置 Nextcloud 支援的代理設置,或配置 PHP 和後台作業使用的環境;僅在互動式 shell 中設置的代理可能無法用於排程任務。
在 Nextcloud 能夠解析並存取其規範 URL 後,重新載入管理概覽。確認該位址使用了正確的 HTTPS 主機名稱和所有子目錄,然後建立一個測試共享鏈接,並檢查它是否包含相同的可存取主機。如果出站位址警告消失,但 Internet 連線警告仍然存在,請單獨調查出站存取問題。 Nextcloud 目前的管理手冊中記錄了 URL 和反向代理設定;具體的螢幕文字可能會因版本和翻譯介面而異。
透過設定其規範 URL 並從伺服器本身檢查 DNS、HTTPS 和反向代理路由,修復 Nextcloud 缺少出站位址警告的問題。
透過本機 Unix 套接字配置 APCu 和 Redis,以實現 Nextcloud 快取和檔案鎖定,並提供目前和舊版 Nextcloud 的步驟。
檢查 Nextcloud 的 cron 模式,修復其 systemd 服務和計時器,並驗證後台作業在啟動後以及每隔五分鐘運行一次。
啟用可靠的 Nextcloud 檔案鎖定,選擇適當的 Redis 或 Valkey 後端,並驗證警告是否清除,同時避免並發檔案變更的風險。
使用最新更新、HTTPS 和 HSTS、精確的反向代理信任以及針對公共伺服器的檢查,修復 Nextcloud 掃描中常見的錯誤。
為需要加密的儲存配置 Nextcloud SSE,保護加密金鑰,並在加密現有文件之前測量傳輸和 CPU 影響。
將 Nextcloud 的檔案搜尋連接到 Elasticsearch,索引文件內容,並選擇適合您的伺服器和安全需求的設定。
配置 Nextcloud 在規定的保留期後刪除已刪除的文件,可靠地安排後台作業,並避免執行清除所有使用者回收站的命令。
安全地執行 Nextcloud 的 OCC 修復程序,預覽資料庫更改,並檢查警告仍然存在的原因。
透過調整 PHP、Nginx 或 Apache、暫存和逾時設置,讓 Nextcloud 瀏覽器上傳更大的文件,並驗證是哪個限制阻止了文件上傳。