我的學習系列 - nginx入門

最近關注了一下分佈式 dubbo和springCloud, dubbo簡單的作了一下總結,springCloud尚未進行系統的學習,等過段時間學習了以後再寫一篇關於它的文章。
借用百度百科裏面的介紹就是
Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務。

簡單的說一下就是dubbo的負載均衡是服務層面,nginx的負載均衡是在http請求層面。html

nginx的簡單實現

nginx下載安裝

首先這裏我使用的是docker進行操做,畢竟如今docker已經很是的流行,構建起來也是很簡單的。
我這裏用的是centos8搭建的docker,能夠看一下我以前寫的docker教程nginx

docker安裝nginx

  • 首先咱們能夠先看一下docker裏面的nginx版本:
    image.png
  • 將nginx的鏡像下載下來便可:
    image.png
  • 啓動nginx:
    因爲docker啓動nginx容器以後並不能直接啓動nginx服務,因此還須要去/usr/sbin/啓動nginx。
    image.png
    這樣咱們訪問centos的地址就能夠看到nginx已經啓動了:
    image.png

在這裏咱們可能會發現咱們訪問地址後沒有顯示這個頁面,而是顯示的沒法鏈接,實際上是由於咱們沒有開放centos的80端口,咱們只須要關閉防火牆就能夠了。web

1. 查看防火牆狀態
     firewall-cmd --state
  2. 中止firewall
     systemctl stop firewalld.service
  3. 禁止firewall開機啓動
     systemctl disable firewalld.service

nginx的簡單應用

首先實現nginx應用的時候咱們須要先下載兩個tomcat,因此在docker裏面咱們應該先啓動兩個tomcat。
image.png
啓動兩個tomcat,端口分別是8080和8081
image.png
咱們須要進入容器內啓動tomcat
image.png
這樣咱們兩個tomcat都啓動完畢了
image.png
image.pngspring

反向代理

反向代理隱藏了服務器的信息!
image.png
咱們想要實現的功能就是訪問虛擬機的地址,而後經過nginx反向代理到8080的tomcat裏面。
如今咱們訪問虛擬機的地址仍是顯示nginx的歡迎頁面:
咱們進入nginx容器的/etc/nginx文件夾裏面修改nginx.conf:
image.pngdocker

  • 先安裝vim編輯器vim

    apt-get update
    apt-get install vim
  • 進行編輯:
    image.pngsegmentfault

    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
  • 查看頁面:
    image.png
    image.png

nginx負載均衡

  • 首先須要將兩個tomcat裏面配置相同的文件:
    咱們須要在連個tomcat裏面都建一個test文件夾,而後裏面新建一個同名的html文件,這裏咱們仍是叫a.html就能夠了。
    8080的tomcat服務器:
    image.png
    image.png
    8081的tomcat服務器:
    image.png
    image.png
  • 配置nginx.conf
    首先咱們須要先新建一個upstream模塊:
    image.png
    而後咱們須要在server裏面配置相關信息,這裏的proxy_pass須要使用咱們上面的upstream模塊:
    image.png
    啓動或者重啓nginx就能夠了,這裏咱們使用的是默認的輪詢:
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;
  }

測試(經過):
image.png
image.pngcentos

相關文章
相關標籤/搜索