nginx 負載均衡

    爲實現nginx 負載均衡, 須要準備nginx tomcat jdkhtml

第一部分 nginx 安裝java

  第一步:準備安裝nginxnginx

    準備好nginx ,tomcat,jdk 的包上傳到服務器web

    連接: https://pan.baidu.com/s/1mh9aT9e 密碼: awnhapache

    

 

  第二步:解壓tomcat

    [root@localhost src]# tar -zxf nginx-1.8.0.tar.gz服務器

    

  第三步:建立一個makefileapp

    ./configure \

    --prefix=/usr/local/nginx \

    --pid-path=/var/run/nginx/nginx.pid \

    --lock-path=/var/lock/nginx.lock \

    --error-log-path=/var/log/nginx/error.log \

    --http-log-path=/var/log/nginx/access.log \

    --with-http_gzip_static_module \

    --http-client-body-temp-path=/var/temp/nginx/client \

    --http-proxy-temp-path=/var/temp/nginx/proxy \

    --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

    --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

    --http-scgi-temp-path=/var/temp/nginx/scgi

    注意:上邊將臨時文件目錄指定爲/var/temp/nginx,須要在/var下建立temp及nginx目錄,安裝後nginx 在/usr/local/nginx 下負載均衡

  第四步: 編譯 執行   makewebapp

  第五步: 安裝 執行 make install

 

 第二部分:jdk安裝

  第一步:解壓文件

  第二步:配置環境變量

    [root@localhost src]# vi /etc/profile

    在文件末尾追加:

    #set java environment
      JAVA_HOME=/usr/local/src/java/jdk1.7.0_79
      JRE_HOME=/usr/local/src/java/jdk1.7.0_79/jre
      CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
      PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
      export JAVA_HOME JRE_HOME CLASS_PATH PATH

  

  第三步: source /etc/profile

 

 第三部分:tomcat安裝

  本意實現nginx負載均衡, 這裏爲了方便在一個機器中安裝兩個tomcat實例, 改掉衝突端口

  第一步: 解壓tomcat文件 tar -zxf apache-tomcat-7.0.47.tar.gz

  第二步: 在/usr/local/下建立一個tomcats 文件夾, 爲放tomcat

     [root@localhost ~]# cd /usr/local/

       [root@localhost local]# mkdir tomcats

  第三步: 將第一步解壓的文件複製到tomcats下,並重命名爲tomcat1,在複製tomcat1更名爲tomcat2

    [root@localhost local]# mv apache-tomcat-7.0.47 /usr/local/tomcats/tomcat1

        [root@localhost local]# cd /usr/local/tomcats/

        [root@localhost local]#  cp tomcat1/ -r tomcat2

  第四步: 修改端口

    [root@localhost local]# vi tomcat2/conf/server.xml

    修改端口第一個:  22行 8005 改成 8006

            70行 8080 改成 8081

          91行 8009 改成 8010

  原則就是和第一個不要重複。

  第五步: 修改tomcat 頁面的信息用於區分

   [root@localhost tomcats]# vi tomcat1/webapps/ROOT/index.jsp

    

 

    在這個jsp頁面顯示的信息後面追加一個 -8080 區分

    [root@localhost tomcats]# vi tomcat2/webapps/ROOT/index.jsp

    一樣位置添加一個 -8081

    

  第六步: 啓動兩個tomcat

    [root@localhost tomcats]# ./tomcat1/bin/startup.sh 

    [root@localhost tomcats]# ./tomcat2/bin/startup.sh 

 

第四部分: 配置nginx 負載均衡

  第一步:修改nginx配置文件

  [root@localhost tomcats]# cd /usr/local/nginx/

   編輯配置文件

   [root@localhost nginx]# vi conf/nginx.conf


36 upstream tomcatServer{ # 新增一個upstream模塊 裏面添加兩個tomcat的地址 37 server 192.168.27.209:8080; 38 server 192.168.27.209:8081; 39 } 40 server { 41 listen 80; 42 server_name localhost; 43 44 #charset koi8-r; 45 46 #access_log logs/host.access.log main; 47 48 location / { 49 # root html; 50 # index index.html index.htm; # 註釋原有的默認頁面 51 proxy_pass http://tomcatServer;  # 新增配好的nginx訪問配置的模塊 52 } 53 54 #error_page 404 /404.html; 55 56 # redirect server error pages to the static page /50x.html 57 # 58 error_page 500 502 503 504 /50x.html; 59 location = /50x.html { 60 root html; 61 } 62 }

  

    第二步: 啓動nginx

    [root@localhost nginx]# ./sbin/nginx

    直接訪問 

    

 

   到此實現了一個簡單的nginx負載均衡實例

#定義負載均衡設備的 Ip及設備狀態 
upstream tomcatServer {   
    server xxx.xx.xx.xx:xxxx down; 
    server xxx.xx.xx.xx:xxxx weight=2; 
    server xxx.xx.xx.xx:xxxx; 
    server xxx.xx.xx.xx:xxxx backup; 
}

在須要使用負載的Server節點下添加

proxy_pass http://tomcatServer;

upstream 每一個設備的狀態:

down 表示單前的server暫時不參與負載 
weight  默認爲1.weight越大,負載的權重就越大。 
max_fails :容許請求失敗的次數默認爲1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤 
fail_timeout:max_fails 次失敗後,暫停的時間。 
backup: 其它全部的非backup機器down或者忙的時候,請求backup機器。因此這臺機器壓力會最輕。

補充: 例如若是nginx+2tomcat 作負載, 若是其中一臺tomcat宕機,該怎麼辦呢?
在網上查到了相關資料
location / {
   # index  index.html index.htm; # 註釋原有的默認頁面
     proxy_pass http://tomcatServer;  # 新增配好的nginx訪問配置的模塊
  proxy_connect_timeout 1; #單位爲秒 
  proxy_send_timeout 1;
  proxy_read_timeout 1;
}


proxy_connect_timeout 
語法:proxy_connect_timeout time ; 
該指令設置與upstream server的鏈接超時時間,有必要記住,這個超時不能超過75秒。說明 :該指令設置與代理服務器的讀超時時間。它決定了nginx會等待多長時間來得到請求的響應。這個時間不是得到整個response的時間,而是兩次reading操做的時間。 
proxy_send_timeout 
語法 proxy_send_timeout time ; 
默認值 60s 
說明: 這個指定設置了發送請求給upstream服務器的超時時間。超時設置不是爲了整個發送期間,而是在兩次write操做期間。若是超時後,upstream沒有收到新的數據,nginx會關閉鏈接 
proxy_read_timeout 
語法 proxy_read_timeout time ; 
默認值 60s 
說明: 該指令設置與代理服務器的讀超時時間。它決定了nginx會等待多長時間來得到請求的響應。這個時間不是得到整個response的時間,而是兩次reading操做的時間。

在http模塊內配置了這三個字段,再reload 一下,只啓動一個項目,就會發現,就算宕機一臺,咱們的項目也能夠接着使用,若是不放心,能夠多試幾回。

此處原文提供者:http://blog.csdn.net/qq_29311303/article/details/52887609

相關文章
相關標籤/搜索