久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    tomcat+nginx+redis實現均衡負載、session共享(一)

     quasiceo 2018-08-17

    在項目運營時,我們都會遇到一個問題,項目需要更新時,我們可能需先暫時關閉下服務器來更新。但這可能會出現一些狀況:

     

    1.用戶還在操作,被強迫終止了(我們可以看日志等沒人操作的時候更新,但總可能會有萬一)

    2.不知道的用戶可能會想網站是不是被攻擊了,降低了對網站的信任程度,從而導致失去部分潛在客戶,這點尤其對金融互聯網公司不利。

     

    在查了一些資料后,決定采用Tomcat + Nginx + Redis來實現負載均衡和session共享。下面記錄下我的實踐過程,如有錯誤不足之處歡迎大神指點,不喜勿噴。

     

    1.Nginx簡單介紹及開啟

    Nginx是一款輕量級兼備高性能的Http和反向代理服務器。所謂反向代理就是指在用戶發起訪問請求,由代理服務器接收,然后將請求轉發給正式服務器,并且將正式服務器處理完的數據返回給客戶端,此時代理服務器就表現為一個服務器。這么做看起來多經過了一步,稍顯麻煩,但實則是好處多多,在下面的demo中我會將其體現出來。

    首先我們去Nginx官網下載個Nginx,我這是在自己電腦上,所以當然下載的是windows版本的。下載完成后直接放在某個盤中即可,不需要安裝。接下去我們打開cmd,進入nginx的目錄下,輸入start nginx。

     

     

    我們可以看到一個窗口一閃而過,這樣nginx就已經被開啟了,我們在任務管理器中可以找到它的進程。

    現在我們在瀏覽器中輸入localhost??梢钥吹匠霈F一個頁面,雖然簡陋了點,但這確確實實就是nginx的歡迎頁面,就類似tomcat剛啟動完成的locahost:8080的歡迎頁面。

     

    2.使用Nginx實現反向代理

    現在我們搭建一個基于SpringMVC +Spring + Mybaties框架的maven項目,搭建過程不加以贅述。功能很簡單,就是能跳轉到一個頁面就行了,當然也可以使用別的框架。

    運行demo,我這tomcat端口是8080,在瀏覽器輸入localhost:8080,出現我們的頁面。

     

    這時我們還是直接訪問tomcat服務器的,現在我想通過nginx訪問tomcat,即輸入localhost就能顯示我們demo的頁面。

    這就要我們去修改nginx的核心配置文件,在其目錄下的conf文件夾下的nginx.conf文件,那么首先我們就要了解該文件中一些節點的作用。

    • worker_processes:工作進程個數,可配置多個

    • worker_connections:單個進程最大連接數

    • server:每一個server相當于一個代理服務器

    • lister:監聽端口,默認80

    • server_name:當前服務的域名,可以有多個,用空格分隔(我們是本地所以是localhost)

    • location:表示匹配的路徑,這時配置了/表示所有請求都被匹配到這里

    • index:當沒有指定主頁時,默認會選擇這個指定的文件,可多個,空格分隔

    • proxy_pass:請求轉向自定義的服務器列表

    • upstream name{ }:服務器集群名稱

    知道了節點作用后,我們就知道我們需要修改的文件中的server部分,這是它原有的代碼,我刪除了它注釋部分。現在我們就能明白為什么輸入localhost,

    它訪問的是它歡迎頁面即index.html。

    下面我們對這段代碼進行一些小小修改。就是將請求轉向我們定義的服務器。

     

     

    隨后在cmd中輸入命令nginx -s reload即可重啟nginx。

    重啟后,我們再輸入localhost,可以看到跳轉到的頁面是我們demo的。

     

    至此,反向代理已完成,這樣所有請求都需經過代理服務器才能訪問到正式服務器,某種程度上可以保護網站安全。

     

    3.使用Nginx實現負載均衡

    負載均衡即是代理服務器將接收的請求均衡的分發到各服務器中。

    負載均衡的優勢在訪問量少或并發小的時候可能并不明顯,且不說淘寶雙11、鐵道部搶票這種級別的訪問量、高并發,就是一般網站的搶購活動時,也會給服務器造成很大壓力,可能會造成服務器崩潰。而負載均衡可以很明顯的減少甚至消除這種情況的出現,下面我們說說實現方法。

    首先我們再開啟一個tomcat服務器,這里區分一下就叫tomcat2吧,原先的叫tomcat1。將tomcat1上的項目,拷貝到tomcat2上,稍微修改下頁面上的文字以便等下區分我們的請求被分發到了哪個tomcat上。tomcat2端口我這里為8081。在瀏覽器中輸入localhost:8081。

     

     

    服務器準備好了,我們要在server外部定義個服務器集群,即用到了上文中提到的upstream 標簽。服務器集群名字取為test。

    同時我們需要再修改下server,將定向的路徑轉到問你服務器集群上。

     

    重啟下nginx,在瀏覽器輸入localhost,再多刷新幾次,可以看到兩個頁面在來回切換。

     

    這樣即實現了負債均衡。假設我們服務器在運行過程中,其中一個tomcat掛了,仍然還有另一個可以訪問。更新的時候也能先關閉只其中一個,輪流更新。另外還能有效緩解服務器壓力,是不是很棒呢?

    當然,以上nginx的配置是簡單化的,實際上我們還可以配置nginx對靜態資源的緩存等等,在此就不多加演示了。

     

    4.小結

    花了好些時間,總算陸陸續續要寫好了,在此小結一下。

    nginx作為一個反向代理服務器,能緩存我們項目的靜態文件,并實現反向代理與均衡負載,可以有效減少服務器壓力,即使項目不大,也可以使用。

    大家另外應該都還發現了個問題,雖然這樣請求能分別請求到兩個tomcat上,如果是一般不需身份校檢的或什么認證的方法尚可,但如果出現這類情況:

    我們在tomcat1上進行了登錄,這時用戶session當然是存在tomcat1上的,而這時進入個人中心的請求請求到tomcat2上了,這時就會出現問題了。tomcat2會告訴你還未登錄,這顯然不是我們想看到的。

    這就涉及到session共享了,如何讓兩個服務器上的session共用。我這里放到下次再說,作為碼農比較忙,可能要過個好幾天。另外我將這次的demo源碼上傳了,下次還要用,nginx配置就不傳了,大家自己多動手試驗。

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 免费观看欧美猛交视频黑人| 国产精品久久福利新婚之夜| 国产女人喷潮视频免费| 国产免费踩踏调教视频| 中文字幕精品无码一区二区三区| 亚洲一区成人av在线| 国产99视频精品免视看9| 日韩精品无码区免费专区 | 久热爱精品视频线路一| 国产99在线 | 亚洲| 国精品午夜福利视频| 国产偷国产偷亚洲清高| 国产成人综合在线女婷五月99播放| 久久久久亚洲精品无码网址| 四虎永久免费精品视频| 少妇厨房愉情理9仑片视频| 双乳奶水饱满少妇呻吟免费看| 久久精品人妻无码专区| 公天天吃我奶躁我的在线观看| 蜜芽久久人人超碰爱香蕉| 无码人妻天天拍夜夜爽| 少妇和邻居做不戴套视频 | 亚洲日韩欧美一区二区三区| 亚洲爆乳WWW无码专区| 红杏亚洲影院一区二区三区| 国产成人综合在线女婷五月99播放| 伊人久久大香线蕉亚洲五月天| 夜夜爱夜鲁夜鲁很鲁| 亚洲一区久久蜜臀av| 日韩夜夜高潮夜夜爽无码| 四虎国产精品免费久久久| 蜜臀av无码一区二区三区| 夜夜躁狠狠躁日日躁| 女高中生强奷系列在线播放| 国产av无码专区亚洲av软件| A级国产乱理伦片在线播放| 亚洲制服丝袜中文字幕在线| 中文字幕亚洲国产精品| 亚洲AV中文无码乱人伦在线观看| 日韩在线成年视频人网站观看| 国产成人精品999在线观看|