贵州十一选五前三直开奖号 | 財經 | 資源 | 理財 | 考研 | 職場 | 論文 | 資格 | 股票學院 |

股票學院: 股票入門 - 股票知識 - 股票術語 - 炒股技巧 - 選股技巧 - 跟莊技巧 - 炒股經驗 - 投資策略 - K線圖 - 均線 - 分時圖 - 成交量 - 波浪理論 - 基本面分析 - 心理分析 - 漲停研究 - 趨勢線 - 江恩理論 - MACD - KDJ - 技術指標 - 財經股票書籍在線閱讀 - 金融類書籍下載 - 銀行學院 - 保險學院 - 外匯學院 - 債券學院 - 股票學院 - 基金學院 - 港股學院 - 黃金學院

當前位置:贵州十一选五前三直开奖号 > 金融云 > 文章正文

贵州十一选五奖励图:注意這幾點,輕輕松松配置 Nginx + Tomcat 的集群和負載均衡

時間:2019-05-30 05:35:03來源:頓悟源碼作者:佚名

    贵州十一选五前三直开奖号 www.grzfr.com Tomcat 集群是當單臺服務器達到性能瓶頸,通過橫向擴展的方式提高整體系統性能的有效手段。Nginx 是一個高性能的 HTTP 和反向代理 web 服務器,可以通過簡單的配置實現 Tomcat 集群的負載均衡。

    注意這幾點,輕輕松松配置 Nginx + Tomcat 的集群和負載均衡

    本文使用的 Tomcat 是 8.5.35 版本,Nginx 是 1.14.2 版本。接下來看下配置的過程以及可能會遇到的問題,首發于微信公眾號「頓悟源碼」。

    1. 概述

    對于 Web 應用來說,集群最大的問題就是 Session 信息的共享,一般有以下解決方法:

    • 使用粘性會話,比如,使用 IP Hash 的負載均衡策略,將當前用戶的請求都集中到一臺服務器上;缺點是單點故障,會話丟失
    • 使用 Session 復制,使用 Tomcat 自帶的 Session 復制策略,將會話信息同步到集群的各個節點;缺點是消耗更多內存和帶寬,適用于小型集群
    • 使用第三方緩存中間件緩存整個集群會話信息,比如 Redis 緩存,可由應用程序控制與 Session 的關聯,也可以適配 Tomcat
    • 當然了,也可以把會話信息存到共享文件系統或者數據庫

    在配置 Nginx 的過程中,可能會遇到以下問題:

    • 配置 upstream 名稱時不能使用下劃線,比如 tomcat_ha,否則 Tomcat 會拋出 The character [_] is never valid in a domain name 的異常
    • 在 windows 上殺掉所有的 nginx.exe 進程,taskkill /fi "imagename eq nginx.exe" /f
    • 在 windows 上有個 pid 為 4 的系統進程會占用 80 端口,所以這里將 nginx 改為了 8000

    在配置 Tomcat 集群的過程中,需要注意的問題:

    • 確保 web.xml 配置了 元素
    • 確保 Context 的 Manager 別被替換成了標準會話管理器
    • Receiver.address 不要配置成 auto,因為默認可能會綁定 127.0.0.1;Receiver.port 可改也可不改,Tomcat 會自行檢測 4000-4100 范圍內的可用端口,自動處理沖突
    • 如果在不同服務器上,需要關閉防火墻或開端口,還有時間同步

    2. Nginx 核心配置

    Nginx 使用的是默認配置,添加和修改的核心配置如下:

    1. http { 
    2.   ... 
    3.   #gzip  on; 
    4.    
    5.   #設置負載均衡的服務器列表和權重 
    6.   upstream tomcat-ha { 
    7.       #ip_hash;  
    8.       server 172.31.1.41:8080 weight=1; 
    9.       server 172.31.1.42:8080 weight=1; 
    10.   } 
    11.    
    12.   server { 
    13.       listen       8000; 
    14.       server_name  localhost; 
    15.  
    16.       #charset koi8-r; 
    17.       #access_log  logs/host.access.log  main; 
    18.  
    19.       location / { 
    20.           root   html; 
    21.           index  index.html index.htm; 
    22.           #轉發請求 
    23.           proxy_pass //tomcat-ha$request_uri; 
    24.           proxy_set_header Host $http_host; 
    25.           proxy_set_header X-Real-IP $remote_addr; 
    26.           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    27.           proxy_set_header X-Forwarded-Proto $scheme; 
    28.       } 
    29.       ... 
    30.   } 

    3. Tomcat 集群配置

    啟用集群配置,在 元素中添加以下配置:

    1. <!-- channelSendOptions=6 同步復制 --> 
    2. <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6"> 
    3.   <!-- 集群 Session 管理器 --> 
    4.   <Manager className="org.apache.catalina.ha.session.BackupManager" 
    5.              expireSessionsOnShutdown="false" 
    6.              notifyListenersOnReplication="true" 
    7.              mapSendOptions="6"/> 
    8.   <!-- 
    9.   <Manager className="org.apache.catalina.ha.session.DeltaManager" 
    10.            expireSessionsOnShutdown="false" 
    11.            notifyListenersOnReplication="true"/> 
    12.   --> 
    13.   <!-- 集群內部通信配置 --> 
    14.   <Channel className="org.apache.catalina.tribes.group.GroupChannel"> 
    15.     <Membership className="org.apache.catalina.tribes.membership.McastService" 
    16.                 address="228.0.0.4" 
    17.                 port="45564" 
    18.                 frequency="500" 
    19.                 dropTime="3000"/> 
    20.     <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 
    21.               address="192.168.10.2" 
    22.               port="5000" 
    23.               selectorTimeout="100" 
    24.               maxThreads="6"/> 
    25.     <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 
    26.       <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> 
    27.     </Sender> 
    28.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> 
    29.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/> 
    30.     <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/> 
    31.   </Channel> 
    32.   <!-- 此 vavle 攔截請求,并將 Session 信息發給內部節點 --> 
    33.   <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" 
    34.          filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/> 
    35.   <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/> 
    36. </Cluster> 

    相關閱讀

    焦點圖文

    關于我們 | 廣告服務 | 商務合作 | 網站地圖

    版權所有 Copyright(C)2018-2020 蘇州騏云躍網絡科技有限公司,未經授權禁止復制或建立鏡像,否則將依法追究法律責任!
    聲明:我們不做任何形式的代客理財及投資指導,凡是以天下金融網名義做股票推薦的行為均屬違法!
    廣告商的言論與行為均與天下金融網無關!股市有風險,投資需謹慎。
    蘇公網安備 32050502000166號
    蘇ICP備14018528號
    商務合作:贵州十一选五前三直开奖号

    天下金融網版權所有