Centos7上配置nginx的負載均衡

前言

在配置nginx負載均衡前.咱們須要明白幾個名詞的概念html

注: 若是不當心忘了tomcat和nginx的啓動,關閉命令,可參考寫在文章最後的命令nginx

一 重要的概念理解

1 什麼是nginx呢?web

Nginx是一個web服務器和反向代理服務器,用於HTTP、HTTPS、SMTP、POP3和IMAP協議.算法

2 什麼是反向代理呢?apache

反向代理隱藏了真實的服務端,當咱們請求 www.baidu.com 的時候,就像撥打10086同樣,背後可能有成千上萬臺服務器爲咱們服務,但具體是哪一臺,你不知道,也不須要知道,你只須要知道反向代理服務器是誰就行了,www.baidu.com 就是咱們的反向代理服務器,反向代理服務器會幫咱們把請求轉發到真實的服務器那裏去。Nginx就是性能很是好的反向代理服務器,用來作負載均衡。windows

3 什麼是負載均衡呢?瀏覽器

負載均衡(Load Balancing)是一種將任務分派到多個服務端進程的方法。例如,將一個HTTP請求派發到實際的Web服務器中執行的過程就涉及負載均衡的實現。一個HTTP請求到達Web服務器,這中間涉及多個過程,也存在多種不一樣負載均衡的方法。tomcat

4 負載均衡有什麼做用呢?服務器

  1. 轉發功能 按照必定的算法【權重、輪詢】,將客戶端請求轉發到不一樣應用服務器上,減輕單個服務器壓力,提升系統併發量。
  2. 故障移除 經過心跳檢測的方式,判斷應用服務器當前是否能夠正常工做,若是服務器期宕掉,自動將請求發送到其餘應用服務器。
  3. 恢復添加 如檢測到發生故障的應用服務器恢復工做,自動將其添加處處理用戶請求隊伍中。

5 負載均衡的分發策略是什麼呢?session

Nginx 的 upstream目前支持的分配算法: 1)、輪詢 ——1:1 輪流處理請求(默認)

每一個請求按時間順序逐一分配到不一樣的應用服務器,若是應用服務器down掉,自動剔除,剩下的繼續輪詢。

2)、權重 ——you can you up

經過配置權重,指定輪詢概率,權重和訪問比率成正比,用於應用服務器性能不均的狀況。

3)、ip_哈希算法

每一個請求按訪問ip的hash結果分配,這樣每一個訪客固定訪問一個應用服務器,能夠解決session共享的問題。

二 配置負載均衡

這次模擬就不在多個機器上配了,咱們把三個tomcat都裝到一臺機器上的不一樣目錄下,分別給他們不一樣的端口,修改下 他們的首頁,模擬一下負載均衡

First: 準備工做

一個nginx服務器,三個tomcat服務器

nginx的安裝我前面有寫過,同志們可參考這篇文章 tomcat就更簡單了,直接上傳解壓,就能夠在瀏覽器訪問ip使用了,打不開,關閉下防火牆試試

個人安裝目錄 nginx /opt/nginx/nginx-1.8.0 tomcat /opt/tomcat/apache-tomcat-7.0.57 test1號tomcat /opt/tomcattest1/apache-tomcat-7.0.57 test2號tomcat /opt/tomcattest2/apache-tomcat-7.0.57

咱們用tomcat來給test1號和test2號作負載均衡 在這裏插入圖片描述

Second: 修改1號,2號tomcat的配置文件和首頁

一 1號tomcat

注意: 修改tomcat的配置文件前,若是啓動了tomcat,就關了再修改

1 先修改端口

vi /opt/tomcattest1/apache-tomcat-7.0.57/conf/server.xml

改三個地方,把三個沒加註釋的端口所有加1

注意: 要改沒加註釋的,加了註釋的改了也沒用 8005->8006 8080->8081 8009->8010 在這裏插入圖片描述

在這裏插入圖片描述 在這裏插入圖片描述

2 再修改一下首頁,主要爲了作區分

cd /opt/tomcattest1/apache-tomcat-7.0.57/webapps/ROOT
vi index.jsp
在<body>標籤下加個h1標籤做區分
位置: 
 <body>
        <h1>111111111111111111111111111111</h1>

3 啓動tomcat

在瀏覽器訪問

http://192.168.220.111/8081       用你本身的ip

二 2號tomcat

跟上面同樣,把要修改的三個端口都加2 就好了

注意: 要改沒加註釋的,加了註釋的改了也沒用 8005->8007 8080->8082 8009->8011

瀏覽器訪問

http://192.168.220.111/8082       用你本身的ip

Third: 配置負載均衡

注意: 修改nginx的配置文件前,若是啓動了nginx,就關了再修改

修改nginx配置文件

vi /usr/local/nginx/conf/nginx.conf

shift+g 跳到最下邊,在最後的 } 前加入

upstream tomcatserver1 {
        server 192.168.220.111:8081 ;
         server 192.168.220.111:8082 ;
    }
  server {
        listen       80;
        server_name  love.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass   http://tomcatserver1;
            index  index.html index.htm;
        }


    }

解釋一下 一個upstream 對應一個server 當咱們在瀏覽器輸入 love.com (本身隨便寫個喜歡的域名),會先找到location裏的 proxy_pass 後面的 http://tomcatserver1, 再找到tomcatserver1對應的相同名字的upstream ,而後進去找代理的ip

此時還須要在本地hosts里加上咱們的ip就能夠在瀏覽器訪問了 在windows系統下,進入

C:\Windows\System32\drivers\etc 目錄下,打開hosts文件,在最下邊加上

192.168.220.111 love.com

你本身的ip   和你本身配置的域名

而後啓動nginx

在瀏覽器輸入 http://192.168.220.111 不停的刷新頁面,會發現1號tomcat 和2 號tomcat近乎於交替出現,也就是最開始咱們提到的負載均衡的三種分發策略中的輪詢, 近乎1:1出現

擴展:

然而在現實開發中,假設咱們的多臺服務器的性能好壞不同,咱們但願性能較好的1 號服務器多代理點url,就能夠進行 權重或hash配置

----------------------------

這裏附上幾條可能會用到的命令 Tomcat經常使用命令

啓動Tomcat:
進入tomcat目錄/bin,而後./startup.sh

中止Tomcat:
進入tomcat目錄/bin,而後./shutdown.sh

Nginx 經常使用命令

注意nginx的配置端口的配置文件在  /usr/local/nginx/conf
並非在解壓目錄下

啓動nginx
cd usr/local/nginx/sbin/
./nginx


重啓nginx
有兩種方法
1 先關閉再重啓
./nginx -s quit   或者 ./nginx -s stop
./nginx

2 直接重啓
./nginx -s reload


檢查是否已經安裝有nginx及對應目錄
find /|grep nginx.conf

查看nginx佔用的的端口
ps -ef| grep nginx

須要殺掉的話
kill -9 xx

原文出處:https://www.cnblogs.com/terry-love/p/11552262.html

相關文章
相關標籤/搜索