Nginx 作為優秀的開源軟體,憑藉其高效能高併發等特點,常常作為web和反向代理服務部署在生產環境中。但是當 Nginx 的規模較大時, Nginx 的運維成本也是不斷上升。如何透過confd+ACM來管理 Nginx 配置,透過集中式的配置管理方式解決 Nginx 的大規模運維問題,運維和開發人員不用登陸到 Nginx 機器上,只需要配置好confd,然後在ACM上操作就可以動態修改 Nginx 的配置引數。
準備工作
Nginx 在日常開發中使用得比較多的功能是負載均衡、限流、快取等, Nginx 的使用和安裝可以在網上查閱相關資料。本文結合負載均衡和限流功能講解如何使用confd+ACM實現 Nginx 的大規模運維操作。
建立confd所需的toml格式配置檔案
vim /etc/confd/conf.d/myapp.toml
check_cmd用於檢驗 Nginx 配置的正確性,當src配置錯誤則不會覆蓋 Nginx 配置
建立模版檔案
vim /etc/confd/templates/ Nginx .conf.tmpl
getv從ACM中獲取對應dataId的配置,/myapp/ Nginx /conf對應的dataId為myapp. Nginx .conf,配置格式為json格式,模版檔案包含了 Nginx 的upstream、限流、黑白名單配置內容,透過json指令解析配置檔案。upstream後端ip透過從ACM的配置的backends陣列中獲取,同樣地,白名單和黑名單ip分別儲存在whiteList和blackList的陣列中,限流的速率和併發數透過rateLimit和connectionLimit設定
在ACM上建立所需的配置檔案
建立dataId為myapp. Nginx .conf的配置檔案,group使用預設的DEFAULT_GROUP即可,配置內容設定好上游節點、黑白名單以及限流閾值
啟動confd
啟動confd,設定好backend、endpoint、名稱空間namespace和阿里雲賬號accessKey
生成配置檔案
confd將ACM中的引數透過模板檔案渲染生成新的 Nginx 配置檔案,檢視生成的/usr/local/ Nginx / Nginx .conf配置檔案是否符合預期,並檢查 Nginx 是否成功reload配置。
動態修改 Nginx 配置
執行時當需要調節 Nginx 的名單或者限流閾值的時候,可以在ACM上修改配置的內容。當然在生產環境可以使用ACM的灰度釋出功能(Beta釋出)驗證沒問題再全量釋出下去。
使用好confd+ACM管理 Nginx 配置,極大程度降低 了Nginx 的運維成本。
Nginx 作為優秀的開源軟體,憑藉其高效能高併發等特點,常常作為web和反向代理服務部署在生產環境中。但是當 Nginx 的規模較大時, Nginx 的運維成本也是不斷上升。如何透過confd+ACM來管理 Nginx 配置,透過集中式的配置管理方式解決 Nginx 的大規模運維問題,運維和開發人員不用登陸到 Nginx 機器上,只需要配置好confd,然後在ACM上操作就可以動態修改 Nginx 的配置引數。
準備工作
Nginx 在日常開發中使用得比較多的功能是負載均衡、限流、快取等, Nginx 的使用和安裝可以在網上查閱相關資料。本文結合負載均衡和限流功能講解如何使用confd+ACM實現 Nginx 的大規模運維操作。
建立confd所需的toml格式配置檔案
vim /etc/confd/conf.d/myapp.toml
check_cmd用於檢驗 Nginx 配置的正確性,當src配置錯誤則不會覆蓋 Nginx 配置
建立模版檔案
vim /etc/confd/templates/ Nginx .conf.tmpl
getv從ACM中獲取對應dataId的配置,/myapp/ Nginx /conf對應的dataId為myapp. Nginx .conf,配置格式為json格式,模版檔案包含了 Nginx 的upstream、限流、黑白名單配置內容,透過json指令解析配置檔案。upstream後端ip透過從ACM的配置的backends陣列中獲取,同樣地,白名單和黑名單ip分別儲存在whiteList和blackList的陣列中,限流的速率和併發數透過rateLimit和connectionLimit設定
在ACM上建立所需的配置檔案
建立dataId為myapp. Nginx .conf的配置檔案,group使用預設的DEFAULT_GROUP即可,配置內容設定好上游節點、黑白名單以及限流閾值
啟動confd
啟動confd,設定好backend、endpoint、名稱空間namespace和阿里雲賬號accessKey
生成配置檔案
confd將ACM中的引數透過模板檔案渲染生成新的 Nginx 配置檔案,檢視生成的/usr/local/ Nginx / Nginx .conf配置檔案是否符合預期,並檢查 Nginx 是否成功reload配置。
動態修改 Nginx 配置
執行時當需要調節 Nginx 的名單或者限流閾值的時候,可以在ACM上修改配置的內容。當然在生產環境可以使用ACM的灰度釋出功能(Beta釋出)驗證沒問題再全量釋出下去。
使用好confd+ACM管理 Nginx 配置,極大程度降低 了Nginx 的運維成本。