最近關注了一下分佈式 dubbo和springCloud, dubbo簡單的作了一下總結,springCloud尚未進行系統的學習,等過段時間學習了以後再寫一篇關於它的文章。
借用百度百科裏面的介紹就是
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。
簡單的說一下就是dubbo的負載均衡是服務層面,nginx的負載均衡是在http請求層面。html
首先這裏我使用的是docker進行操做,畢竟如今docker已經很是的流行,構建起來也是很簡單的。
我這裏用的是centos8搭建的docker,能夠看一下我以前寫的docker教程。nginx
在這裏咱們可能會發現咱們訪問地址後沒有顯示這個頁面,而是顯示的沒法鏈接,實際上是由於咱們沒有開放centos的80端口,咱們只須要關閉防火牆就能夠了。web
1. 查看防火牆狀態 firewall-cmd --state 2. 中止firewall systemctl stop firewalld.service 3. 禁止firewall開機啓動 systemctl disable firewalld.service
首先實現nginx應用的時候咱們須要先下載兩個tomcat,因此在docker裏面咱們應該先啓動兩個tomcat。
啓動兩個tomcat,端口分別是8080和8081
咱們須要進入容器內啓動tomcat
這樣咱們兩個tomcat都啓動完畢了spring
反向代理隱藏了服務器
的信息!
咱們想要實現的功能就是訪問虛擬機的地址,而後經過nginx反向代理到8080的tomcat裏面。
如今咱們訪問虛擬機的地址仍是顯示nginx的歡迎頁面:
咱們進入nginx容器的/etc/nginx文件夾裏面修改nginx.conf:docker
先安裝vim編輯器vim
apt-get update apt-get install vim
進行編輯:segmentfault
server { listen 80; # 端口號 server_name 192.168.233.128; # 虛擬服務器的識別路徑 location ~ /edu/ { root html; proxy_pass http://192.168.233.128:8080; # 代理的地址 index index.html index.html; } location ~ /vod/ { root html; proxy_pass http://192.168.233.128:8081; # 代理的地址 index index.html index.html; } }
啓動ngins:後端
重啓nginx service nginx restart 啓動nginx ./nginx 中止nginx ./nginx -s stop
1.輪詢(默認) 每一個請求按時間順序逐一分配到不一樣的後端服務器,若是後端服務器down掉,能自動剔除。 2.weight 指定輪詢概率,weight和訪問比率成正比,用於後端服務器性能不均的狀況。 upstream myserver { server 192.168.233.128:8080 weight 5; server 192.168.233.128:8081 weigth 10; } 3. ip_hash 每一個請求按訪問ip的hash結果分配,這樣每一個訪客固定訪問一個後端服務器。 upstream myserver { ip_hash; server 192.168.233.128:8080; server 192.168.233.128:8081; } 4.fair(第三方) 按後端服務器的響應時間來分配請求,響應時間短的優先分配。與weight分配策略相似。 upstream myserver { server 192.168.233.128:8080; server 192.168.233.128:8081; fair; }
測試(經過):centos