Win10 搭建 nginx tomcat 集羣

本文闡述在一臺Win10 PC 上面搭建tomcat集羣(安裝兩臺Tomcat應用)以及如何應用nginx實現負載均衡。javascript

1. 搭建Tomcat集羣html

按照前一篇博文的步驟在Win 10 PC上面安裝兩臺Tomcat應用。前端

 

2. 搭建nginxjava

到nginx官網下載windows版本的nginx。(http://nginx.org/en/download.html)nginx

 

安裝很簡單,直接解壓到某一固定目錄下。我直接解壓到D:\D\nginx-1.12.2下面。web

3. 配置nginxapache

nginx的配置文件爲「nginx.conf」,在安裝目錄下(D:\D\nginx-1.12.2\conf)。須要修改的地方有兩處,以下所示:windows

第一處爲配置upstream,此處就是添加tomcat集羣的信息。後端


#keepalive_timeout 0;
keepalive_timeout 10;tomcat

#gzip on;

#設定負載均衡的服務器列表 支持多組的負載均衡,能夠配置多個upstream 來服務於不一樣的Server.

#nginx 的 upstream 支持 幾 種方式的分配

#1)、輪詢(默認) 每一個請求按時間順序逐一分配到不一樣的後端服務器,若是後端服務器down掉,能自動剔除。

#2)、weight 指定輪詢概率,weight和訪問比率成正比,用於後端服務器性能不均的狀況。 跟上面樣,指定了權重。

#3)、ip_hash 每一個請求按訪問ip的hash結果分配,這樣每一個訪客固定訪問一個後端服務器,能夠解決session的問題。

#4)、fair

#5)、url_hash #Urlhash

upstream local_tomcat_cluster {

#weigth參數表示權值,權值越高被分配到的概率越大

#1.down 表示單前的server暫時不參與負載

#2.weight 默認爲1.weight越大,負載的權重就越大。

#3.backup: 其它全部的非backup機器down或者忙的時候,請求backup機器。因此這臺機器壓力會最輕。

#server 192.168.1.116 down;

#server 192.168.1.116 backup;

server localhost:8091;

server localhost:8092;

#server localhost:8091 weight=1; 

#server localhost:8092 weight=5; 

}

第二處修改nginx監聽端口(修改成9999),以及轉發信息(proxy_pass http://local_tomcat_cluster; 此處用的是upstream的名字,並不帶有端口號),以下:

#配置代理服務器的地址,即Nginx安裝的服務器地址、監聽端口、默認地址  

    server {
        listen       9999;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

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

 當nignx接收到來自9999端口的請求時,會轉發給tomcat集羣,有tomcat作對應的web處理。

4. 啓動nginx

用CMD進入到nginx的安裝路徑下,直接執行「start nginx」指令。另外還有幾條比較有用的指令:

「nginx -s reload」:此指令使nginx.conf文件修改直接生效,應該是重啓一次nginx。

「nginx -s stop」: 中止nginx。

「nginx -t」: 測試nginx.conf文件是否合法。

當啓動nginx可是尚未啓動tomcat時會出現以下頁面:

 

5. 啓動tomcat

在tomcat1和tomcat2中添加web應用。添加以下文件D:\D\apache-tomcat-8.5.30-tomcat1\webapps\tomcat1\index.jsp,D:\D\apache-tomcat-8.5.30-tomcat2\webapps\tomcat2\ndex.jsp。

index.jsp 內容以下:

<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
  <body>
    <% out.println("hello, This is Tomcat1"); %>
  </body>
</html>

  

<%@ page language="java" %>
<%@ page import="java.util.*" %>
<html>
  <body>
    <% out.println("hello, This is Tomcat2"); %>
  </body>
</html> 

並修改tomcat1和tomcat2相對應的server.xml.

<Host name="localhost"  appBase="webapps/tomcat1"
            unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="" reloadable="true" />

 

<Host name="localhost"  appBase="webapps/tomcat2"
            unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="" reloadable="true" />

 最後啓動tomcat1和tomcat2.

6. 驗證

7. 總結

此處nginx位於tomcat集羣的前端,充當了反向代理服務器的功能。

反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的鏈接請求,而後將請求轉發給內部網絡上的服務器,並將從服務器上獲得的結果返回給internet上請求鏈接的客戶端,此時代理服務器對外就表現爲一個服務器。

相關文章
相關標籤/搜索