Nginx

如果每個域沒有一個文件,您如何使用 SSL 處理 100 個域?

  • November 3, 2022

背景

我目前正在執行一個電子商務平台,此時在設置新域時會執行自動化腳本。它首先驗證 DNS 記錄,生成 Nginx 配置文件,然後使用 LetsEncrypt 生成 SSL 證書。

但是,這似乎很冗長而且效率不高,因為如果我需要進行更改(例如昇級到更新版本的 php),那麼我必須更新每個文件,而且每次都必須重新載入 Nginx域被添加、刪除或更改。

目標

有沒有辦法更有效地做到這一點,以便將來可以更輕鬆地完成負載平衡?

目前在進行負載平衡時,我必須決定要平衡哪些網站,每個網站都需要手動設置每個域。

您可以利用Nginx 中的include指令

將所有常用選項放入某個文件中,並將include該文件放在適當的位置。例如,在一個反向代理上,要添加的一組標頭(X-Forwarded-For等)和排除 ACME 驗證 URI 在所有代理虛擬主機上都是相同的,因此我將它們放入公共文件中,並server在需要時將該文件包含在指令中. 如果我需要更新(例如添加另一個標題),我只是更新那個包含的文件。

至於重新載入 Nginx,這是不可避免的。當您以任何方式更改其配置時,無論是添加文件還是編輯現有文件,您都需要告訴它重新讀取更新的配置,這就是 reload 基本上所做的。它很優雅,這也是很常見的情況(不僅僅是 Nginx)。我不明白為什麼擔心。就像“應用”按鈕一樣。Ansible 可以為您完成(使用處理程序)。

引用自:https://serverfault.com/questions/1114731