<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

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

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    軟件及環境是:
    虛擬機上裝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 禮物 閱讀(3219) 評論(0)  編輯  收藏

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

    網站導航:
     
    主站蜘蛛池模板: 亚洲AV无码专区国产乱码4SE | 9420免费高清在线视频| 91精品国产免费久久国语麻豆| 免费看污成人午夜网站| 国产精品酒店视频免费看| 国产精品亚洲不卡一区二区三区| 亚洲Av永久无码精品三区在线| 日本亚洲精品色婷婷在线影院| 农村寡妇一级毛片免费看视频| 久久国产精品国产自线拍免费 | A国产一区二区免费入口| 99久久免费中文字幕精品| 免费涩涩在线视频网| 在线日韩日本国产亚洲| 亚洲免费在线观看视频| 污污污视频在线免费观看| 中文字幕免费观看| 一本久久综合亚洲鲁鲁五月天| 亚洲av日韩av无码| 狠狠入ady亚洲精品| 国产一级淫片a免费播放口| 成年女人免费v片| 亚洲精品无码永久中文字幕| 亚洲av永久无码精品三区在线4| 一区二区三区视频免费| 久久久久久精品免费免费自慰| 国产一区视频在线免费观看| 亚洲福利在线视频| 亚洲AV无码一区二区三区网址 | 亚洲精品99久久久久中文字幕 | 亚洲男人天堂2018av| 亚洲精品视频在线观看你懂的| 亚洲va中文字幕无码久久| 亚洲狠狠婷婷综合久久| 久久午夜夜伦鲁鲁片无码免费| 日本一道本高清免费| 666精品国产精品亚洲 | 亚洲精品无码av片| 99爱在线精品视频免费观看9| 免费久久精品国产片香蕉| 亚洲日韩中文字幕|