好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Nginx + consul + upsync 完成動態負載均衡的方法詳解

Nginx + consul + upsync 完成動態負載均衡的方法詳解

熱門標簽:百度地圖底圖標注 智能電銷機器人真的有用么 撫州市城區地圖標注 電銷智能機器人試用 高德地圖標注足跡怎么打標 新鄉牧野400電話申請 激光標記地圖標注 中國地圖標注上各個省 企業辦理400電話收費標準

前置知識

DNS域名解析過程

  • 在瀏覽器輸入域名,訪問后
  • 在瀏覽器緩存中查找是否有對應的ip和端口,如果有直接訪問對應ip和端口
  • 瀏覽器緩存中沒有則在本地host文件中查找是否有對應的~~
  • 本地host文件中沒有則去DSN服務器上查找

 外網映射

顧名思義,就是將本地的ip地址,映射出一個公網ip,可以供所有主機(連接到互聯網的計算機)訪問

  • 疑問:為什么需要使用外網映射

例如做微信支付時的第三方接口回調,微信回調你的接口必須是一個公網ip地址,不然他根本無法給你回調,導致你本地無法測試。這個時候你就需要外網映射來將自己的ip地址映射成一個公網(可供主機訪問的網絡)

  • 疑問:如何實現外網映射?

通過第三方工具完成外網映射,例如natapp,ngrok,具體如何使用自行進入官網觀看,
ngrok官網.
natapp官網.(推薦)

 nginx 核心知識

什么是nginx

nginx是一款輕量級的web服務器/反向代理服務器,很小并且支持非常高的并發量

應用場景

http服務器 :做靜態服務器、圖片服務器
虛擬主機配置 :將一臺服務器、拆分成多個網站部署。(可以通過配置不同的域名映射或者不同的端口來完成虛擬主機的配置)
反向代理: 使用反向代理隱藏真實ip地址
反向代理應用場景:
你有3臺服務器分別提供不同的服務,這個時候使用nginx來配置通過域名映射來完成不同三臺服務器的訪問,或者通過端口也可以。可以隱藏3臺提供服務器的真實ip地址,nginx通過內部轉發到不同的服務器,抓包工具也只能獲取到nginx服務器的ip地址(沒有基點)。
負載均衡
安全配置
使用Nginx搭建API接口網關,解決網站跨域問題
實現網站靜態資源和動態資源分離
實現防止DDOS(流量攻擊)

名詞解釋

四層負載均衡

運行在運輸層,常使用TCP協議

七層負載均衡

運行在應用層,常使用Http協議

負載均衡

作用: 能夠減輕單臺服務器的壓力,故障轉移(重試機制)如果一臺服務器宕機了,直接輪詢到下一臺服務器、健康檢查,在nginx中使用upstream配置上游服務器,nginx中

故障轉移

如果訪問其中一臺服務器,發現服務宕機了,或者有延遲,可以配置故障轉移直接切換到另一臺服務器

### 連接到上游服務器的時間
		proxy_connect_timeout 1s;
		### 發送請求超時時間
 proxy_send_timeout 1s;
		### 接受相應超時時間
 proxy_read_timeout 1s;

動態負載均衡

在upstream中的配置不再是靜態的,而是在注冊中心上動態拉取配置,達到動態負載均衡的功能。

Nginx + consul + upsync 完成動態負載均衡

 1、安裝centos7的基礎環境

# 基礎命令
 # 安裝netstat命令
yum install netstat
 # 查看所有tcp端口使用情況
 netstat -ntlp
 # 查看當前服務進程
 ps -ef 可選:[ | grep nginx]
 # 強制殺死端口對應的程序
 kill -9 pid進程號
 
# 配置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
# 安裝基本環境
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
yum install wget
yum install unzip

2、安裝consul (服務注冊與發現)

# 下載它的安裝包,wget -c 中的 -c 表示斷點續傳
wget -c https://releases.hashicorp.com/consul/1.8.5/consul_1.8.5_linux_amd64.zip
# 解壓壓縮包
upzip unzip consul_1.8.5_linux_amd64.zip
# 執行./consul命令,執行后出現 Usage: consul [--version] [--help] <command> [<args>] 這一行以及下面的一些參數則代表這個consul沒問題
./consul
# 關閉防火墻
systemctl stop firewalld
# 啟動consul,這個ip填寫自己計算機的ip,如果是虛擬機就填虛擬機的ip,centos查看ip地址可以用ip addr,window查看ip用 ipconfig
./consul agent -dev -ui -node=consul-dev -client=192.168.254.134
# 當然,也可以使用后臺運行的方式,這樣子輸出的日志回到同級的nohup.out文件中
nohup ./consul agent -dev -ui -node=consul-dev -client=192.168.254.134 &
# 訪問consul 的web頁面
192.168.254.134:8500

# 查看并關閉consul的后臺進程,我這里寫的19854是jobs -l查詢到的進程pid
jobs -l
kill -9 19854

3、安裝nginx 并且為其添加upsync模塊

# 下載upsync模塊并且將其解壓
wget -c https://github.com/weibocom/nginx-upsync-module/archive/master.zip
unzip nginx-upsync-module-master.zip
# 下載nginx
wget -c http://nginx.org/download/nginx-1.9.9.tar.gz
# 解壓到當前目錄
tar -zxvf nginx-1.9.9.tar.gz
# 配置一個nginx的用戶以及用戶組,-s /sbin/nologin nginx代表該用戶是無法登錄到主機的
groupadd nginx
useradd -g nginx -s /sbin/nologin nginx
# 這兩個文件夾會在編譯nginx時指定
mkdir -p /var/tmp/nginx/client/
mkdir -p /usr/local/nginx
# 進入到nginx的解壓后文件夾的目錄下
cd nginx-1.9.9 
# 編譯 nginx ,--prefix 代表nginx安裝的目錄。其中指定了用戶和用戶組,以及上面創建的文件夾并且添加了upsync模塊,由于upsync解壓在nginx同級目錄下,所以這里使用..來指定到它
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre --add-module=../nginx-upsync-module-master
make && make install
## 進入到剛剛nginx安裝的目錄,也就是/usr/local/nginx目錄中,進入conf目錄中編輯conf目錄的文件內容
upstream myserver {
 server 127.0.0.1:11111;# 這個固定的,不用理
 # springbootserver : key的值,upsync_timeout 超時時間3秒,upsync_interval 間隔時間 ,upsync_type 類型consul,strong_dependency 增強依賴 
 upsync 192.168.254.134:8500/v1/kv/upstreams/springbootserver upsync_timeout=3000ms upsync_interval=500ms upsync_type=consul strong_dependency=off;
 # 將拉取下來的配置文件放在以下配置的目錄中 
 upsync_dump_path /usr/local/nginx-1.9.9/conf/upsync_dump.conf;

 }
 # 將server中的location指定為剛剛創建的upstream(上游服務器)
 location / {
 proxy_pass http://myserver;
 index index.html index.htm;
 }
# 進入到sbin目錄下,啟動nginx
./nginx

4、進行測試

  • 本機啟動2個服務,分別為8080和8081,ip地址為192.168.0.116
  • 使用linux命令為consul指定2個key value,192.168.254.134是consul的ip地址
# 使用curl 請求,一定要是put請求
curl -X PUT http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8080

curl -X PUT http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8081

#或者使用postman調用consul提供的api來添加key,value
http://192.168.254.134:8500/v1/kv/upstreams/springbootserver/192.168.0.116:8081

# 甚至可以圖形化界面進行操作,手動添加key value,手動添加時注意如果是創建文件夾需要在最后加一個正斜杠 : /

5、在consul圖形化頁面添加key對應的value來指定負載均衡的算法

{"weight":1, "max_fails":2, "fail_timeout":10, "down":0}

然后由于wget下載的速度有時候比較慢,這邊上傳了文件

文件鏈接

到此這篇關于Nginx + consul + upsync 完成動態負載均衡的文章就介紹到這了,更多相關Nginx + consul + upsync 動態負載均衡內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:西安 延安 臨汾 南通 海西 邯鄲 辛集 忻州

巨人網絡通訊聲明:本文標題《Nginx + consul + upsync 完成動態負載均衡的方法詳解》,本文關鍵詞  Nginx,consul,upsync,完成,動態,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Nginx + consul + upsync 完成動態負載均衡的方法詳解》相關的同類信息!
  • 本頁收集關于Nginx + consul + upsync 完成動態負載均衡的方法詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产精品二区| 揉我奶?啊?嗯高潮高义高洁视频| 性俄罗斯交XXXXX免费视频| 91久久精品日日躁夜夜躁欧美| 我被肌肉男抱起来c到爽| 91社区在线观看精品| 男人的嘴添女人下身视频大全| 亚洲国产精品18久久久久久| 91成人在线免费视频| 欧美高清无砖专区欧美精品 | 国产东北婬语对白粗口video| 婷婷爱爱| 漂亮人妻被公日日躁| 久久久久久久精品国产毛片| 桶女人下部模拟器| japanese55成熟丰满熟| 日韩欧美一区二区视频| 91亚洲国产AⅤ精品一区二区| 国产一区丝袜| 美女100%露屁股无遮挡| 国产yw8825免费观看网站下载| 女主播脱小内内给粉丝看| 粉红理论未删减| 黄色影视在线观看| 国产免费看mv大片的软件| japanhd日本| 我女儿的朋友6完整有限中| 国产一区二区美女无遮挡視頻| 亚洲伦理久久| 一本大道久久a久久精品综合| 蜜桃AV秘?无码一区三区| 欧美美女被艹| 大尺度做爰啪啪床戏水声| 特级做a爰片毛片免费看| 天堂网ww| 出轨男邻居高h| 国产最爽的乱淫视频国语| 中文字幕乱码中文乱码b站| 久久久无码精品亚洲日韩蜜臀网| 扣扣传媒网站| 欧美性xxxxx极品人妖|