日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx修改upstream不重启的方法(ngx_http_dyups_module模块)

發布時間:2023/12/9 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx修改upstream不重启的方法(ngx_http_dyups_module模块) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

nginx很強大,第三方模塊也不少,淘寶在nginx上很活躍,特別是章亦春,他參與的模塊至少10+, 好了今天主角不是他,是一款動態配置upstream的模塊,這個模塊使用rest接口. 簡單,方便,并且可以不需要重啟nginx。但是有個問題比較明顯,nginx重啟之后,什么都沒了. 1. 安裝 首先安裝nginx動態upstream配置模塊,如果你已經安裝了nginx,那么輕參考ttlsa上的如何安裝nginx第三方模塊,會安裝的請跳過. # cd /usr/local/src/ # wget https://github.com/yzprofile/ngx_http_dyups_module/archive/master.zip \ -O? ngx_http_dyups_module-master.zip # unzip ngx_http_dyups_module-master.zip # wget http://nginx.org/download/nginx-1.4.2.tar.gz # tar -xzvf nginx-1.4.2.tar.gz # cd nginx-1.4.2 # ./configure --prefix=/usr/local/nginx-1.4.2 --with-http_stub_status_module \--add-module=../ngx_http_dyups_module-master/ # make # make install 2. 指令(Directives) 語法: dyups_interface 默認: none 配置段: location 啟用配置upstream的接口 語法: dyups_read_msg_timeout time 默認: 1s 配置段: main 設置從共享內存中讀取commands的超時時間,默認為1秒 語法: dyups_shm_zone_size size 默認: 2MB 配置段: main 設置存儲commands的共享內存 This directive set the size of share memory which used to store the commands. 語法: dyups_upstream_conf path 默認: none 配置段: main 這個指令用來指定upstream配置文件的路徑,他會在啟動的時候加載 語法: dyups_trylock on | off 默認: off 配置段: main 是否啟用鎖,如果啟用了它,同一時刻有人在修改,那么將會返回409. 3. restful接口 GET /detail 獲取所有upstream名稱以及upstream里面的servers信息 /list 獲取upstream列表 /upstream/name 使用upstream名稱獲取upstream信息 POST /upstream/name 更新upstream body 配置內容; body server ip:port; DELETE /upstream/name 刪除upstream,name相應修改 3.1 調用接口響應http狀態碼 500: 需要reload nginx 409: 重新調用一次接口,上個請求被鎖了. 204:調用list或者detail時出現,表示沒有響應內容 其他:你的命令錯誤,請修改 注意:你需要第三方模塊來生成新的配置文件到nginx配置目錄. 作者也沒有說什么第三方模塊,這個插件很好,不能生成配置文件,讓他顯得尤為不足. 4. nginx配置 備注:以下配置有安裝echo模塊. http {# 從upstream讀取初始upstream配置dyups_upstream_conf? conf/upstream.conf;include conf/upstream.conf;# 默認主機server {listen?? 80;location / {proxy_pass http://$host;}}# 動態配置upstream的接口站點server {listen 81;location / {dyups_interface; # 這個指令表示這邊是接口站點}}# upstream后面的realserver,2臺801,,82server {listen 801;location / {echo 801; }}server {listen 802;location / {echo 802;}} } upstream.conf配置 upstream ttlsa1 {server 127.0.0.1:801; }upstream ttlsa12 {server 127.0.0.1:802; } 5. 使用方法演示 5.1 添加upstream # curl -d "server 127.0.0.1:801;server 127.0.0.1:802;" 127.0.0.1:81/upstream/ttlsa3 success 測試 # curl -H "host: ttlsa3" 127.0.0.1 801# curl -H "host: ttlsa3" 127.0.0.1 802 可以看到通過host的ttlsa3可以訪問到upstream配置的兩臺服務器。如果你發現curl幾次都是一樣的,那么輕多試幾次。 5.2 查看upstream詳細信息 # curl 127.0.0.1:81/detail ttlsa1 server 127.0.0.1:801ttlsa2 server 127.0.0.1:802ttlsa3 server 127.0.0.1:801 server 127.0.0.1:802 5.3 刪除upstream # curl -i -X DELETE 127.0.0.1:81/upstream/ttlsa1 success# curl 127.0.0.1:81/detail ttlsa2 server 127.0.0.1:802ttlsa3 server 127.0.0.1:801 server 127.0.0.1:802 5.4 增加帶ip_hash的upstream # curl -d "ip_hash;server 127.0.0.1:801;server 127.0.0.1:802;" 127.0.0.1:81/upstream/ttlsa4 success# curl 127.0.0.1:81/upstream/ttlsa4 server 127.0.0.1:801 server 127.0.0.1:802 為什么沒有帶ip_hash的信息,本身就無法顯示,那我們在看看weight會不會顯示出來 5.5 增加帶weight的upstream # curl -d "server 127.0.0.1:801;server 127.0.0.1:802 weight=2;" 127.0.0.1:81/upstream/ttlsa5 success# curl 127.0.0.1:81/upstream/ttlsa5 server 127.0.0.1:801 server 127.0.0.1:801 還是不顯示,雖然沒顯示,但是效果還是有的,大家自己去測試吧. 6. 注意事項 本模塊不能和nginx_upstream_check_module一起使用,接下來的版本會支持。或者可以使用tenengine。淘寶真是不遺余力在推廣他們的tenengine. 7. 結束語 ngx_http_dyups_module帶的功能我很喜歡,但是最大的不足就是不能生成配置文件,所有內容都保存在內存中,希望以后的版本能夠支持。有這個模塊,shell腳本也可以修改upstream,不在需要重啟nginx。 轉載請注明來至運維生存時間:http://www.ttlsa.com/html/3268.html

轉載于:https://my.oschina.net/766/blog/211332

總結

以上是生活随笔為你收集整理的nginx修改upstream不重启的方法(ngx_http_dyups_module模块)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。