分佈式環境Tomcat多節點集羣下共享目錄配置,tomcat虛擬目錄+nfs

咱們可能有這種場景:linux

集羣環境下,多個web容器須要請求一個共享目錄下的文件,好比保存圖片或者錄音文件,任意一個節點保存後其餘節點須要及時獲取,此時就須要目錄進行同步了,不然Nginx負載到任意一個節點上請求文件時,找不到文件將返回404,這時候linux下能夠用rsync處理,可是rsync雙向同步有不少問題,在jekins環境下不少不少問題,不建議使用。nginx

這裏建議用nfs處理,或者用其餘分佈式文件系統如gfs或者ceph等,或者直接將這些文件放到cdn(看項目大小,財氣是否夠粗夠硬),考慮文件不少性能問題建議cdn,其次gfs,ceph,最low的nfs處理吧。web

 

處理分3個步驟:centos

1)安裝nfstomcat

2)配置nfsapp

3)配置tomcat 虛擬目錄webapp

 

1.1)安裝nfs分佈式

  yum install nfs-utils portmap nfs4-acl-tools  (每一個節點分別執行)性能

1.2)各自節點(tomcat所在linux)rest

  mkdir -p /data/nfs

  chown -R tomcat:tomcat /data/nfs

  chmod -R 777 /data/nfs

  以上3條命令每一個節點分別執行

2.1)nfs server(只有一個server,選用一個節點,其餘均爲客戶端)配置

  vi /etc/exports

  添加以下內容:

    /data/nfs *(rw,sync)

2.2)啓動nfs服務

  centos redhat 5版本執行:

    service portmap restart

    service nfs restart

    

    讓nfs隨機啓動:

      chkconfig portmap on

      chkconfig nfs on

  centos redhat 6版本執行:

    service rpcbind restart

    service nfs restart

    讓nfs隨機啓動:

      chkconfig rpcbind on

      chkconfig nfs on

2.3)客戶端掛載nfs文件系統

   a、關閉防火牆(各節點分別執行,或者添加iptables策略)

    service iptables stop

    chkconfig iptables off

   b、掛載nfs

     mount -t nfs 10.0.0.1:/data/nfs /data/nfs

     上面10.0.0.1爲nfs server ip地址,上面這條命令各節點分別執行

   這時客戶端節點執行df -h命令應該能看到nfs掛載點文件系統了

3.1)tomcat配置虛擬目錄

  server.xml中添加host:

    <Context path="/mp3" docBase="/data/nfs" reloadable="true"></Context

 

以上tomcat就能夠訪問webapp(deploy目錄)外的文件了,咱們能夠經過http://ip:端口/工程名/mp3/001.mp3訪問咱們的音頻文件了,nginx無論分發到哪一個節點tomcat都不會返回404了,由於任意一個節點往nfs目錄下寫文件實際上時寫到nfs server文件系統上,其餘tomcat節點都可以訪問。

以上教程比較簡易,如遇問題能夠郵件跟我聯繫dba_xyx@hotmail 

相關文章
相關標籤/搜索