Terry.Li-彬

          虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(19)

          隨筆分類(107)

          隨筆檔案(141)

          文章分類(284)

          文章檔案(342)

          相冊

          收藏夾(58)

          家裝

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          軟件及環境是:
          虛擬機上裝centos 5.5
          IP為:192.168.0.51 裝上nginx和tomcat ?6.0.32 命名為 Tomcat1
          一臺win7上裝tomcat ?6.0.32? IP為:192.168.0.50 ?命名為 Tomcat2

          首先裝nginx,我是參照http://blog.s135.com/nginx_php_v6/?配了一個Nginx + PHP(FastCGI)環境,然后再加上Tomcat的轉發。
          我的nginx.conf 修改如下
          #######################################################################
          #
          #?This?is?the?main?Nginx?configuration?file.??
          #
          #?More?information?about?the?configuration?options?is?available?on?
          #???
          *?the?English?wiki?-?http://wiki.nginx.org/Main
          #???*?the?Russian?documentation?-?http://sysoev.ru/nginx/
          #
          #######################################################################

          #
          ----------------------------------------------------------------------
          #?Main?Module?
          -?directives?that?cover?basic?functionality
          #
          #???http:
          //wiki.nginx.org/NginxHttpMainModule
          #
          #
          ----------------------------------------------------------------------

          user??????????????nginx;
          worker_processes??
          8;

          error_log??
          /var/log/nginx/error.log;
          #error_log??
          /var/log/nginx/error.log??notice;
          #error_log??
          /var/log/nginx/error.log??info;

          pid????????
          /var/run/nginx.pid;


          #
          ----------------------------------------------------------------------
          #?Events?Module?
          #
          #???http:
          //wiki.nginx.org/NginxHttpEventsModule
          #
          #
          ----------------------------------------------------------------------

          events?
          {
          ????worker_connections??
          10240;
          }



          #
          ----------------------------------------------------------------------
          #?HTTP?Core?Module
          #
          #???http:
          //wiki.nginx.org/NginxHttpCoreModule?
          #
          #
          ----------------------------------------------------------------------

          http?
          {
          ????include???????
          /etc/nginx/mime.types;
          ????default_type??application
          /octet-stream;

          ????log_format??main??
          '$remote_addr?-?$remote_user?[$time_local]?"$request"?'
          ??????????????????????
          '$status?$body_bytes_sent?"$http_referer"?'
          ??????????????????????
          '"$http_user_agent"?"$http_x_forwarded_for"';

          ????access_log??
          /var/log/nginx/access.log??main;

          server_names_hash_bucket_size??
          128;
          client_header_buffer_size??32k;
          large_client_header_buffers??
          4??32K;
          client_max_body_size?8m;


          ????sendfile????????on;
          ????tcp_nopush?????on;

          ????#keepalive_timeout??
          0;
          ????keepalive_timeout??
          65;

          ????#gzip??on;

          gzip_min_length?1k;
          gzip_buffers?
          4??16k;
          gzip_http_version?
          1.1;
          gzip_comp_level?
          2;
          gzip_types?text
          /plain?application/x-javascript?text/css?application/xml;
          gzip_vary??on;

          upstream??tserver??
          {
          ????????server???
          192.168.0.51:8080?weight=1;
          ????????server???
          192.168.0.50:8080?weight=1;
          ?}

          ????
          ????#
          ????#?The?
          default?server
          ????#
          ????server?
          {
          ????????listen???????
          80;
          ????????server_name??_;

          ????????#charset?koi8
          -r;

          ????????#access_log??logs
          /host.access.log??main;

          ?????????location?
          ~?.*\.(php|php5)?$
          ????????
          {
          ??????????root??
          /www/ROOT;??????
          ??????????#fastcgi_pass??unix:
          /tmp/php-cgi.sock;
          ?????????fastcgi_pass??
          127.0.0.1:9000;
          ?????????fastcgi_index?index.php;
          ?????????include?fcgi.conf;
          ????????}


          ????????location?
          ~?\.(jsp|jspx|do|htm)?$?{
          ?????????proxy_set_header??Host?$host;??
          ?????????proxy_set_header??X
          -Real-IP??$remote_addr;
          ?????????proxy_pass?http:
          //tserver;#轉向tomcat處理???????
          ????????}


          ????????location?
          ~?(/dwr/)??{
          ?????????proxy_set_header??Host?$host;
          ?????????proxy_set_header??X
          -Real-IP??$remote_addr;
          ?????????proxy_pass?http:
          //tserver;#轉向tomcat處理
          ????????}



          ????????location?
          /?{
          ????????????root???
          /www/ROOT;
          ????????????index??index.html?index.jsp?
          default.jsp?index.do?default.do;
          ????????}


          ????????error_page??
          404??????????????/404.html;
          ????????location?
          =?/404.html?{
          ????????????root???
          /www/ROOT;
          ????????}


          ????????#?redirect?server?error?pages?to?the?
          static?page?/50x.html
          ????????#
          ????????error_page???
          500?502?503?504??/50x.html;
          ????????location?
          =?/50x.html?{
          ????????????root???
          /www/ROOT;
          ????????}


          ????????#?proxy?the?PHP?scripts?to?Apache?listening?on?
          127.0.0.1:80
          ????????#
          ????????#location?
          ~?\.php$?{
          ????????#????proxy_pass???http:
          //127.0.0.1;
          ????????#}


          ????????#?pass?the?PHP?scripts?to?FastCGI?server?listening?on?
          127.0.0.1:9000
          ????????#
          ????????#location?
          ~?\.php$?{
          ????????#????root???????????html;
          ????????#????fastcgi_pass???
          127.0.0.1:9000;
          ????????#????fastcgi_index??index.php;
          ????????#????fastcgi_param??SCRIPT_FILENAME??
          /scripts$fastcgi_script_name;
          ????????#????include????????fastcgi_params;
          ????????#}


          ????????#?deny?access?to?.htaccess?files,?
          if?Apache's?document?root
          ????????#?concurs?with?nginx's?one
          ????????#
          ????????#location?
          ~?/\.ht?{
          ????????#????deny??all;
          ????????#}

          ????}


          ????#?Load?config?files?from?the?
          /etc/nginx/conf.d?directory
          ????include?
          /etc/nginx/conf.d/*.conf;

          }


          下一步是配置Tomcat集群。分別打開tomcat1和tomcat2下conf中server.xml
          <Server port="8005" shutdown="SHUTDOWN">
          <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
          <Connector port="8080" maxHttpHeaderSize="8192"
          ? ?maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
          ? ?enableLookups="false" redirectPort="8443" acceptCount="100"
          ? ?connectionTimeout="20000" disableUploadTimeout="true" />
          <!-- Define an AJP 1.3 Connector on port 8009 -->
          <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

          找到<Engine name="Catalina" defaultHost="localhost">
          Tomcat1下的修改為<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
          Tomcat2下的修改為<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">

          tomcat1找到
          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
          修改為?
          <Cluster?className="org.apache.catalina.ha.tcp.SimpleTcpCluster"?
          ????????????channelSendOptions
          ="6">

          ????????????
          <Manager?className="org.apache.catalina.ha.session.DeltaManager"
          ????????????????expireSessionsOnShutdown
          ="false"
          ????????????????notifyListenersOnReplication
          ="true"/>
          ????????????
          <!--
          ????????????
          <Manager?className="org.apache.catalina.ha.session.BackupManager"
          ????????????????expireSessionsOnShutdown
          ="false"
          ????????????????notifyListenersOnReplication
          ="true"
          ????????????????mapSendOptions
          ="6"/>
          ????????????
          -->
          ????????????
          <Channel?className="org.apache.catalina.tribes.group.GroupChannel">
          ????????????????
          <Membership?className="org.apache.catalina.tribes.membership.McastService"?
          ????????????????????address
          ="228.0.0.5"?
          ????????????????????bind
          ="192.168.0.51"?
          ????????????????????port
          ="45564"?
          ????????????????????frequency
          ="500"?
          ????????????????????dropTime
          ="3000"/>
          ????????????????
          <Receiver?className="org.apache.catalina.tribes.transport.nio.NioReceiver"?
          ????????????????????address
          ="192.168.0.51"?
          ????????????????????autoBind
          ="100"?
          ????????????????????port
          ="4001"?
          ????????????????????selectorTimeout
          ="100"?
          ????????????????????maxThreads
          ="6"/>
          ????????????????
          <Sender?className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
          ????????????????????
          <Transport?className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
          ????????????????
          </Sender>
          ????????????????
          <Interceptor?className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
          ????????????????
          <Interceptor?className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
          ????????????
          </Channel>
          ????????????
          <Valve?className="org.apache.catalina.ha.tcp.ReplicationValve"?filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
          ????????????
          ????????????
          <ClusterListener?className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
          ????????????
          <ClusterListener?className="org.apache.catalina.ha.session.ClusterSessionListener"/>
          ????????
          </Cluster>


          tomcat2找到
          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
          修改為?
          <Cluster?className="org.apache.catalina.ha.tcp.SimpleTcpCluster"?
          ????????????channelSendOptions
          ="6">

          ????????????
          <Manager?className="org.apache.catalina.ha.session.DeltaManager"
          ????????????????expireSessionsOnShutdown
          ="false"
          ????????????????notifyListenersOnReplication
          ="true"/>
          ????????????
          <!--
          ????????????
          <Manager?className="org.apache.catalina.ha.session.BackupManager"
          ????????????????expireSessionsOnShutdown
          ="false"
          ????????????????notifyListenersOnReplication
          ="true"
          ????????????????mapSendOptions
          ="6"/>
          ????????????
          -->
          ????????????
          <Channel?className="org.apache.catalina.tribes.group.GroupChannel">
          ????????????????
          <Membership?className="org.apache.catalina.tribes.membership.McastService"?
          ????????????????????address
          ="228.0.0.5"?
          ????????????????????bind
          ="192.168.0.50"?
          ????????????????????port
          ="45564"?
          ????????????????????frequency
          ="500"?
          ????????????????????dropTime
          ="3000"/>
          ????????????????
          <Receiver?className="org.apache.catalina.tribes.transport.nio.NioReceiver"?
          ????????????????????address
          ="192.168.0.50"?
          ????????????????????autoBind
          ="100"?
          ????????????????????port
          ="4000"?
          ????????????????????selectorTimeout
          ="100"?
          ????????????????????maxThreads
          ="6"/>
          ????????????????
          <Sender?className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
          ????????????????????
          <Transport?className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
          ????????????????
          </Sender>
          ????????????????
          <Interceptor?className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
          ????????????????
          <Interceptor?className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
          ????????????
          </Channel>
          ????????????
          <Valve?className="org.apache.catalina.ha.tcp.ReplicationValve"?filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
          ????????????
          ????????????
          <ClusterListener?className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
          ????????????
          <ClusterListener?className="org.apache.catalina.ha.session.ClusterSessionListener"/>
          ????????
          </Cluster>



          還需要在程序的web.xml里面</web-app>前面加入以下這句話
          <distributable/>?
          session同步到這里設置完畢

          服務器的啟動順序如下:?
          tomcat1 --> |tomcat2 --> |nginx?

          先啟動tocmat1,tomcat1啟動完全的時候再啟動tomcat2,等兩個tocmat全啟動之后,再啟動nginx

          負載的時候可以用APACHENGINX,如果什么都不用,兩臺一接防問了話,可能會出錯極session不同步的問題,網上也很多人介意不要做seeeion同步,這樣會降低機器的性能,有一個方法可以,就是NGINXip_hash,這樣至少可以保證客戶端去防問同一臺TOCMAT,除非那臺TOCMAT掛了





          一、下載下列幾個 Jar包?
          http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.3.0.jar?
          http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-jodatime-1.3.0.jar?
          http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-cglib-1.3.0.jar?
          http://spymemcached.googlecode.com/files/memcached-2.4.2.jar?
          http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar?

          將以下幾個Jar包Copy到 $TOMCAT_HOME/lib目下,每個Tomcat節點都需要有。?

          二、配置Tomcat的Server.xml配置文件,樣本可以點擊這里下載,主要內容如下:?
          http://www.javabloger.com/images/2010-05/webcluster/server.xml.txt?

          <Context docBase="D:\webapp" path="" reloadable="true" >?
          <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"?
          memcachedNodes="n1:localhost:11211"?
          requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"?
          sessionBackupAsync="false"?
          sessionBackupTimeout="100"?
          transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"?
          copyCollectionsForSerialization="false"?
          />?
          </Context>?

          每個Tomcat的節點都需要修改。

          posted on 2011-06-22 22:15 禮物 閱讀(3222) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。

          網站導航:
           
          主站蜘蛛池模板: 南华县| 尼木县| 平南县| 汉沽区| 肇庆市| 南投县| 堆龙德庆县| 从江县| 科技| 扎囊县| 阿城市| 和静县| 宁阳县| 姚安县| 隆林| 敦化市| 恩平市| 安西县| 贡山| 二手房| 阳曲县| 汤原县| 昆山市| 玉龙| 板桥市| 达孜县| 潞西市| 云浮市| 绥中县| 南投市| 辰溪县| 安泽县| 宽甸| 新昌县| 托里县| 获嘉县| 连山| 无锡市| 南阳市| 武威市| 南昌市|