zoukankan      html  css  js  c++  java
  • Apache(web服务器)与Tomcat(应用服务器)搭建集群

      web服务器:Apache、Nginx、IIS等

      应用服务器:Tomcat、JBoss、Weblogic等

      现在web服务器和应用服务器其实界限已经不是太清晰了,大部分的应用服务器也包含一些web服务器的功能,使用什么服务器大部分取决与架构场景和技术解决方案。

    在服务器集群中,主要场景是一下几种:

      1,静态资源优化

      2,多环境应用整合

      3,负载均衡

      4,其他复合场景

    接下来准备将Apache(web服务器)与两个Tomcat(应用服务器)集成在一起。

    1.环境准备

      1.1 Apache安装

      windows下面安装Apache简单很多,直接类似软件点击下一步安装一下,配置一下端口号(默认80)。启动就好了。

    访问localhost:80/index.html

      1.2 Tomcat1与Tomcat2准备

      在tomcat官网下载两个免安装的zip包直接解压出来tomcat1和tomcat2;

      在tomcat1的目录下打开tomcat1/conf/server.xml,修改HTTP/1.1端口号为:8081

    <Connector port="8081" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

      在tomcat1的目录下打开tomcat1/conf/server.xml,修改HTTP/1.1端口为:8082,AJP端口为:8010,redirectPort:8444,Server port:8006,避免与tomcat1端口冲突,因为我这里使用的一台机器搭建的集成环境。

    <Connector port="8082" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8444" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />

    在tomcat/bin目录下点击startup.bat,启动两个tomcat,这里有一个控制台乱码问题,修改一下tomcat/conf/logging.properties,把编码改为GBK

    在idea控制台里面有时也会出现类似问题,修改字符集就可以解决。

     

      1.3 在tomcat1和tomcat2的webapps清空,并放入自己测试的资源sample1和sample2的index.html

    hello,tomcat1!
    hello,tomcat2!

    重启tomcat1和tomcat2访问

    localhost:8081/sample1/index.html

    localhost:8082/sample2/index.html

     

    2.集群配置

      2.1修改httpd.conf,加载模块

      这里为什么加载mod_jk模块,Apache与tomcat集成是可以通过AJP协议也可以通过HTTP协议,可以使用mod_jk(AJP)和mod_proxy+mod_proxy_ajp(AJP)集成也可以使用mod_proxy+mod_proxy_http(HTTP),这里使用是mod_proxy+mod_proxy_http。

    在Apache目录下的modules找一下,没有mod_jk.so,他是tomcat提供的,可以按照自己的机器和Apache版本找一个放在modules下面。

    mod_jk.so下载地址http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/

    我这里为了方便,直接使用mod_proxy.so+mod_proxy_http.so

    接下来修改httpd.conf,加载mod_proxy.so、mod_proxy_http.so模块去掉#

    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_module modules/mod_proxy_http.so

    在httpd.conf的最后一行,重新开一行,没有任何结束符号的空白地方增加

    ProxyPass "/sample1" "http://localhost:8081/sample1"
    ProxyPassReverse "/sample1" "http://localhost:8081/sample1"
    ProxyPass "/sample2" "http://localhost:8082/sample2"
    ProxyPassReverse "/sample2" "http://localhost:8082/sample2"

    访问localhost:80/sample1

    访问localhost:80/sample2

  • 相关阅读:
    Linux下svn服务器搭建
    mybatis-generator自动生成代码插件使用详解
    java中Class.forName("xxx")和ClassLoader().loadClass("xxx")的区别
    ExecutorService中submit()和execute()的区别
    Redis学习总结(1)——数据持久化
    Java内存模型及性能优化
    (转)Lock和synchronized比较详解
    SpringBoot中获取spring.profiles.active
    SpringBoot添加拦截器
    SpringBoot与Kafka集成
  • 原文地址:https://www.cnblogs.com/i-tao/p/11256730.html
Copyright © 2011-2022 走看看