Nginx在Windows平臺的配置

1.1.1    課程目標:html

課程目標:

可以使用Nginx搭建Tomcat集羣,並完成負載均衡.nginx

1.1.2    Nginx的概述:

什麼是Nginx:

爲何使用Nginx:

度孃的解釋:web

背景:redis

互聯網飛速發展的今天,大用戶量高併發已經成爲互聯網的主體.怎樣能讓一個網站可以承載幾萬個或幾十萬個用戶的持續訪問呢?這是一些中小網站急需解決的問題。用單機tomcat搭建的網站,在比較理想的狀態下可以承受的併發訪問量在150到200左右。按照併發訪問量佔總用戶數量的5%到10%這樣計算,單點tomcat網站的用戶人數在1500到4000左右。對於一個爲全國範圍提供服務的網站顯然是不夠用的,爲了解決這個問題引入了負載均衡方法。負載均衡就是一個web服務器解決不了的問題能夠經過多個web服務器來平均分擔壓力來解決,併發過來的請求被平均分配到多個後臺web服務器來處理,這樣壓力就被分解開來。apache

負載均衡服務器分爲兩種一種是經過硬件實現的負載均衡服務器,簡稱硬負載例如:f5。另外一種是經過軟件來實現的負載均衡,簡稱軟負載:例如apache和nginx。硬負載和軟負載相比前者做用的網絡層次比較多能夠做用到socket接口的數據鏈路層對發出的請求進行分組轉發可是價格成本比較貴,而軟負載做用的層次在http協議層之上能夠對http請求進行分組轉發而且由於是開源的因此幾乎是0成本,而且阿里巴巴,京東等電商網站使用的都是Nginx服務器。瀏覽器

1.1.3    使用Nginx完成負載均衡:

完成Nginx負載均衡,那麼須要先來介紹Tomcat的安裝和配置,咱們首先要來配置Tomcat完成集羣的配置.由於咱們沒有多臺服務器運行Tomcat.那麼咱們能夠模擬在一臺服務器上運行多個Tomcat程序.tomcat

使用Tomcat配置Tomcat集羣:

步驟一:下載Tomcat:服務器

http://tomcat.apache.org/download-70.cgi網絡

步驟二:安裝和配置Tomcat:session

直接將下載後的Tomcat解壓在本地磁盤:解壓兩個分別命名爲tomcat1和tomcat2.

分別完成以下配置:(須要將tomcat帶有端口號的地方改爲不一樣的端口便可.)分別打開兩個tomcat的conf下的server.xml

tomcat1/conf/server.xml

tomcat2/conf/server.xml

1.1.4    Nginx的安裝和部署:

Nginx的安裝:

將nginx-1.8.0.zip解壓包某個盤符下運行:目錄結構以下:

雙擊nginx.exe便可運行:打開瀏覽器http://localhost:80顯示以下頁面:

說明安裝成功!!!

關閉nginx須要使用:

至關於找到nginx進程kill。

nginx -s stop

從新加載配置文件:

nginx -s reload

能夠不關閉nginx的狀況下更新配置文件.

Nginx的負載均衡的配置:

打開C:\nginx-1.8.0\conf\nginx.conf這個文件:

***** 經過以上的配置咱們已經能夠經過訪問www.taoge.com訪問到不一樣的tomcat來分擔服務器端的壓力.請求負載過程當中會話信息不能丟失.那麼須要在多個tomcat中session須要共享.

* 配置Tomcat的session共享能夠有三種解決方案:

第一種是以負載均衡服務器自己提供的session共享策略,每種服務期的配置是不同的而且nginx自己是沒有的。

第二種是利用web容器自己的session共享策略來配置共享。針對於weblogic這種方式仍是靠普的。可是針對於tomcat這種方式存在很大的缺陷,主要由於是依靠廣播方式來實現的session複製,會浪費不少帶寬致使整個網絡反映緩慢。官網也建議這種方式最好不要超過4臺tomcat,具體的內容可參考/webapps/docs/cluster-howto.html裏面有詳細的說明。下面是具體的配置過程

第三種是Tomcat集羣+redis的Session共享配置方法.

在這裏咱們以第二種方式爲例:

配置Tomcat中session的共享:

步驟一:修改server.xml文件,最簡單的集羣配置只須要將節點中註釋掉的下面這句取消註釋便可:

Xml代碼:    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 

使用這樣方法配置的集羣會將Session同步到所在網段上的全部配置了集羣屬性的實例上(此處講所在網段可能不許確,是使用Membership 的address和port來區分的。tomcat集羣的實例若是在Membership配置中有相同的address和port值的tomcat被分到同一個集羣裏邊。他們的session是相互共享的,同一個session的集羣被稱爲一個cluster。能夠配置多個cluster,可是cluster和cluster之間的session是不共享的)。也就是說若是該廣播地址下的全部Tomcat實例都會共享Session,那麼假若有幾個互不相關的集羣,就可能形成Session複製浪費,因此爲了不浪費就須要對節點多作點設置了,以下:

Xml代碼

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">   

        <Channel className="org.apache.catalina.tribes.group.GroupChannel">   

            <Membership className="org.apache.catalina.tribes.membership.McastService"   

                address="228.0.0.4"   

                port="45564"   

                frequency="500"   

                dropTime="3000"/>   

        </Channel>   

    </Cluster> 

加了一個Channel,裏面包了個Membership,我們要關注的就是membership的port屬性和address屬性,不一樣的集羣設置不一樣的port值或address值,從目前的使用來看,基本上是隔離開了。

步驟二:修改項目的web.xml文件:

web.xml文件的修改很簡單:只須要在節點中添加這個節點<distributable/>就能夠了。

OK,有了這二步就實現了Tomcat的集羣和Session的共享了。

相關文章
相關標籤/搜索