1. 程式人生 > >ubantu 下 tomcat + nginx 實現負載均衡

ubantu 下 tomcat + nginx 實現負載均衡

pro 命令 eve work 超時時間 install 磁盤 服務器集群 -1

在自己的ubantu虛擬機下實現nginx+tomcat負載均衡,自己本地練著玩,挺有意思的,記錄下過程。

以下參考了幾篇有用的博文:

  1. Tomcat+Nginx搭建高性能負載均衡集群 http://blog.csdn.net/wang379275614/article/details/47778201;
  2. 在Linux裏安裝、啟動nginx http://blog.csdn.net/molingduzun123/article/details/51850925;http://www.cnblogs.com/wyd168/p/6636529.html;

  進入正題:首先在服務器上安裝兩個tomcat,修改index.jsp(以區分訪問的是哪個tomcat),然後分別啟動,不明白的詳見上面第一片博文。效果如下

技術分享

技術分享

重點註意兩個tomcat的端口要修改得不同(三個地方)

  然後安裝nginx:需要的庫(nginx依賴前面兩個):PCRE庫(https://sourceforge.net/projects/pcre/files/pcre/);zlib庫(http://zlib.net/);nginx(http://nginx.org/en/download.html)。分別安裝三個程序,流程一樣:

tar -xvf xxx.tar.gz   
cd xxx-1.2.8  //解壓後的文件夾   
./configure   
make  
make install  

在上面的鏈接博文中交代安裝完這三個文件後就OK了,然後配置nginx,進入nginx/conf/nginx.conf文件,改幾個核心配置

events {  
    worker_connections  1024;#單個進程最大連接數(最大連接數=連接數*進程數)  
}  
  
http {  
    include       mime.types; #文件擴展名與文件類型映射表  
    default_type  application/octet-stream;#默認文件類型  
  
    sendfile        on;#開啟高效文件傳輸模式,sendfile指令指定nginx是否調用sendfile函數來輸出文件,對於普通應用設為 on,如果用來進行下載等應用磁盤IO重負載應用,可設置為off,以平衡磁盤與網絡I
/O處理速度,降低系統的負載。註意:如果圖片顯示不正常把這個改成off。 keepalive_timeout 65; #長連接超時時間,單位是秒 gzip on;#啟用Gizp壓縮 #服務器的集群 upstream netitcast.com { #服務器集群名字(下面會配置使用它的地方) server 127.0.0.1:18080 weight=1;#服務器配置 weight是權重的意思,權重越大,分配的概率越大。 server 127.0.0.1:28080 weight=2; } #當前的Nginx的配置:這裏配置的服務器名和監聽端口,就是提供服務的地方,會交給下線proxy_pass配置的服務器集群地址處理 server { listen 80;#監聽80端口,可以改成其他端口(最好改下,80端口一般會被占用) server_name localhost;############## 當前服務的域名 location / { proxy_pass http://netitcast.com; proxy_redirect default; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }

配置完成後啟動nginx:

nginx -c /home/cxd/java/nginx/nginx-1.8.1/conf/nginx.conf 

但是我的nginx啟動失敗:提示

技術分享

不知道是什麽原因提示還沒安裝nginx,按照其他人提供的方式我實際已經在之前安裝了nginx(./configure;make;make install這幾個命令)

跟著提示走,繼續安裝:

sudo apt-get install nginx-core

我只安裝了core,有的說要安裝全部。

完成後再次啟動。

然後就直接訪問我們配置的nginx代理的地址:localhost:8089/index.jsp (8090是nginx配置的監聽端口,一開始我的是默認的80,結果端口被占用,啟動nginx時就失敗了)。

出現的結果很滿意,隨機訪問了兩臺tomcat的主頁,結束。

ubantu 下 tomcat + nginx 實現負載均衡