亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Nginx 作為優(yōu)秀的開源軟件,憑借其高性能高并發(fā)等特點(diǎn),常常作為web和反向代理服務(wù)部署在生產(chǎn)環(huán)境中。但是當(dāng) Nginx 的規(guī)模較大時(shí), Nginx 的運(yùn)維成本也是不斷上升。本文介紹如何通過confd+ACM來管理 Nginx 配置,通過集中式的配置管理方式解決 Nginx 的大規(guī)模運(yùn)維問題,運(yùn)維和開發(fā)人員不用登陸到 Nginx 機(jī)器上,只需要配置好confd,然后在ACM上操作就可以動(dòng)態(tài)修改 Nginx 的配置參數(shù)。

如何使用confd+ACM管理Nginx配置

 

準(zhǔn)備工作

在操作本文的示例之前需要配置好開通ACM和對(duì)confd的使用有基本概念,ACM的開通及其基本使用可以參考:這里

https://help.aliyun.com/document_detail/59953.html

confd的基本使用可以參考:這里

https://help.aliyun.com/document_detail/124844.html

Nginx 在日常開發(fā)中使用得比較多的功能是負(fù)載均衡、限流、緩存等, Nginx 的使用和安裝可以在網(wǎng)上查閱相關(guān)資料。本文結(jié)合負(fù)載均衡和限流功能講解如何使用confd+ACM實(shí)現(xiàn) Nginx 的大規(guī)模運(yùn)維操作。

創(chuàng)建confd配置文件

創(chuàng)建confd所需的toml格式配置文件

vim /etc/confd/conf.d/myApp.toml

check_cmd用于檢驗(yàn) Nginx 配置的正確性,當(dāng)src配置錯(cuò)誤則不會(huì)覆蓋 Nginx 配置

reload_cmd用于reload Nginx 配置

[template]
src = " Nginx .conf.tmpl"
dest = "/usr/local/ Nginx /conf/ Nginx .conf"
keys = [
"/myapp/ Nginx /conf",
]
check_cmd = "/usr/local/ Nginx /sbin/ Nginx -t -c {{.src}}"
reload_cmd = "/usr/local/ Nginx /sbin/ Nginx -s reload"

創(chuàng)建模版文件

vim /etc/confd/templates/ Nginx .conf.tmpl

getv從ACM中獲取對(duì)應(yīng)dataId的配置,/myapp/ Nginx /conf對(duì)應(yīng)的dataId為myapp. Nginx .conf,配置格式為json格式,模版文件包含了 Nginx 的upstream、限流、黑白名單配置內(nèi)容,通過json指令解析配置文件。upstream后端ip通過從ACM的配置的backends數(shù)組中獲取,同樣地,白名單和黑名單ip分別存儲(chǔ)在whiteList和blackList的數(shù)組中,限流的速率和并發(fā)數(shù)通過rateLimit和connectionLimit設(shè)置

...
{{$data := json (getv "/myapp/ Nginx /conf")}}
geo $whiteiplist {
 default 1;
 {{range $data.whiteList}}
 {{.}} 0;
 {{end}}
}
map $whiteiplist $limit {
 1 $binary_remote_addr;
 0 "";
}
limit_req_zone $limit zone=rateLimit:10m rate={{$data.rateLimit}}r/s;
limit_conn_zone $limit zone=connectionLimit:10m;
{{range $data.blackList}}
deny {{.}};
{{end}}
upstream myapp {
 server 11.160.65.95:8080;
}
server {
 listen 80;
 server_name localhost;
 #charset koi8-r;
 #access_log logs/host.access.log main;
 location / {
 root html;
 index index.html index.htm;
 proxy_pass http://myapp;
 limit_conn connectionLimit {{$data.connectionLimit}};
 limit_req zone=rateLimit burst={{$data.burst}} nodelay;
 }
...
}
...

在ACM上創(chuàng)建所需的配置文件

創(chuàng)建dataId為myapp. Nginx .conf的配置文件,group使用默認(rèn)的DEFAULT_GROUP即可,配置內(nèi)容設(shè)置好上游節(jié)點(diǎn)、黑白名單以及限流閾值

{
"backends":["10.0.1.100:80","10.0.1.101:80"],
"whiteList":["10.0.1.102","10.0.1.103"],
"blackList":["10.0.1.104","10.0.1.104"],
"rateLimit":"10",
"connectionLimit":"10",
"burst":"10"
}
如何使用confd+ACM管理Nginx配置

 

啟動(dòng)confd

啟動(dòng)confd,設(shè)置好backend、endpoint、命名空間namespace和阿里云賬號(hào)accessKey/secretKey

confd -backend nacos -endpoint {endpoint}:8080 -namespace {namespace} -accessKey {accessKey} -secretKey {secretKey}
如何使用confd+ACM管理Nginx配置

 

生成配置文件

confd將ACM中的參數(shù)通過模板文件渲染生成新的 Nginx 配置文件,查看生成的/usr/local/ Nginx / Nginx .conf配置文件是否符合預(yù)期,并檢查 Nginx 是否成功reload配置。

...
geo $whiteiplist {
 default 1;
 10.0.1.102 0;
 10.0.1.103 0;
}
map $whiteiplist $limit {
 1 $binary_remote_addr;
 0 "";
}
limit_req_zone $limit zone=rateLimit:10m rate=10r/s;
limit_conn_zone $limit zone=connectionLimit:10m;
deny 30.5.125.74;
deny 10.0.1.105;
upstream myapp {
 server 11.160.65.95:8080;
}
server {
 listen 80;
 server_name localhost;
 location / {
 root html;
 index index.html index.htm;
 proxy_pass http://myapp;
 limit_conn connectionLimit 10;
 limit_req zone=rateLimit burst=10 nodelay;
 }
...
}
...

動(dòng)態(tài)修改 Nginx 配置

運(yùn)行時(shí)當(dāng)需要調(diào)節(jié) Nginx 的名單或者限流閾值的時(shí)候,可以在ACM上修改配置的內(nèi)容。當(dāng)然在生產(chǎn)環(huán)境可以使用ACM的灰度發(fā)布功能(Beta發(fā)布)驗(yàn)證沒問題再全量發(fā)布下去。

如何使用confd+ACM管理Nginx配置

 

本文演示了如何使用confd+ACM管理 Nginx 配置,降低 Nginx 的運(yùn)維成本。

confd+ACM的使用還可以參考:

如何在阿里云上安全的存放您的配置 - 續(xù)

https://yq.aliyun.com/articles/596252

使用etcd+confd管理 Nginx 配置

https://www.cnblogs.com/Anker/p/6112022.html

本文作者:風(fēng)卿,Nacos 社區(qū) Committer

分享到:
標(biāo)簽:Nginx
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定