Windows下使用Nginx+Tomact做負載均衡

 

前言

今天,王子與大家閒談一下如何在Windows下使用Nginx+Tomcat做負載均衡的完整步驟,小夥伴們可以試着自己動手實踐一下哦。

另外說明一點,本篇文章是純實操文章,不涉及太多原理的解讀,後期可能單獨開一個專欄來深入討論Nginx的原理。

好了那我們直接開始。

 

下載Nginx

首先我們去官網下載一個Windows穩定版本的Nginx,官網地址:http://nginx.org/en/download.html

 

 

下載後解壓到想要的位置,小夥伴們要注意了,千萬不要把它解壓到帶有中文的文件夾下,會導致不能啓動的。

Window上的啓動非常簡單,我們只要進入文件夾,雙擊nginx.exe就可以直接啓動了

nginx的默認端口是80端口,由於王子電腦上的80端口被ISS佔用,所以我們修改一下端口,改成81端口。

修改端口也很容易,直接進入conf文件夾,打開nginx.conf文件,修改如下位置即可:

 

 修改後,我們直接雙擊就可以啓動Nginx服務了,你會看到一個一閃而過的命令窗口,不用在意,其實已經啓動成功了,我們在瀏覽器輸入http://localhost:81/,就可以看到Nginx的啓動頁面了。

 

 這樣我們的Nginx環境就部署好了。

 

配置文件介紹

現在我們有了Nginx的環境,接下來我們的目標是通過Nginx將用戶的請求反向代理到Tomcat上,那麼我們首先啓動一臺Tomcat服務器,默認配置即可。

然後我們打開nginx.conf文件,王子給大家簡單介紹一下里面的一些配置的含義。

        listen       81;
        server_name  localhost;

listen:剛纔我們已經改過了,它就是代表Nginx的監聽端口,這個沒什麼可說的

server_name:表示監聽到之後請求轉到哪裏,默認直接轉到本地。

        location / {
            root   html;
            index  index.html index.htm;
        }

location:表示匹配的路徑,這時配置了/表示所有請求都被匹配到這裏

root:裏面配置了root這時表示當匹配這個請求的路徑時,將會在html這個文件夾內尋找相應的文件。

index:當沒有指定主頁時,默認會選擇這個指定的文件,它可以有多個,並按順序來加載,如果第一個不存在,則找第二個,依此類推。

除了這些配置,我們再補充一個配置

proxy_pass,它表示代理路徑,相當於轉發,而不像之前說的root必須指定一個文件夾。

那麼現在我們修改一下配置文件,如下:

  
location / {  
    proxy_pass http://localhost:8080;
}  

然後我們讓Nginx重新加載配置文件,回到Nginx根目錄執行nginx -s reload命令就可以了。

然後我們再重新打開Nginx的頁面,小夥伴們,是不是發現它已經打開了Tomcat頁面呢。

 

實現負載均衡的配置

剛剛我們已經實現了請求的反向代理,從Nginx轉發到了Tomcat上,那麼如何配置可以實現一個Tomcat的負載均衡集羣呢,其實也是很容易的。

配置如下:

upstream localtomcat {  
    server localhost:8080;  
}  
  
server{  
        location / {  
           proxy_pass http://localtomcat;  
        }  
        #......其他省略  
}  

小夥伴們,劃重點了,這裏一定要注意。upstream後的名字一定不要帶下劃線,Nginx是不認下劃線的,會導致轉發異常。

那麼如何添加新的tomcat實現負載均衡呢?

我們修改端口,新打開一個tomcat服務器,端口爲8081,然後增加配置如下:

upstream localtomcat {  
    server localhost:8080;  
    server localhost:8081;  
}  

再重新加載Nginx的配置文件,你會發現,負載均衡已經實現了,現在會向兩臺tomcat轉發請求了。

而且我們可以設置weight=數字來指定每個tomcat的權重,數字越大,表明請求到的機會越大。

配置如下:

upstream localtomcat {  
    server localhost:8080 weight=1;  
    server localhost:8081 weight=5;  
}  

 

總結

好了,到這裏我們已經在Windows下搭建好了Nginx+Tomcat的負載均衡集羣。

王子今天的分享就到這裏了,歡迎小夥伴們繼續關注後續文章。

 

 

往期文章推薦:

什麼是消息中間件?主要作用是什麼?

常見的消息中間件有哪些?你們是怎麼進行技術選型的?

你懂RocketMQ 的架構原理嗎?

聊一聊RocketMQ的註冊中心NameServer

Broker的主從架構是怎麼實現的?

RocketMQ生產部署架構如何設計

RabbitMQ和Kafka的高可用集羣原理

RocketMQ的發送模式和消費模式

討論一下秒殺系統的技術難點與解決方案

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章