From 74ca4ef1d251edf307bbef5624d88acdd633a236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=87=8C=E9=A3=8E?= Date: Fri, 8 Jul 2016 20:52:05 +0800 Subject: [PATCH] commit --- _config.yml | 1 + _data/sitemap.yml | 9 ++ .../2016-07-08-apache-server-tomcat.md | 135 ++++++++++++------ images/icon/baiduzhongban-4.gif | Bin 0 -> 3172 bytes images/icon/defaultIcon1229.png | Bin 0 -> 3612 bytes note/JavaWeb/JavaWeb/log4j.md | 61 ++++++++ sitemap/index.html | 28 ++++ 7 files changed, 188 insertions(+), 46 deletions(-) create mode 100644 _data/sitemap.yml rename note/apacheServer/apachehttpd.md => _posts/apacheServer/2016-07-08-apache-server-tomcat.md (65%) create mode 100644 images/icon/baiduzhongban-4.gif create mode 100644 images/icon/defaultIcon1229.png create mode 100644 note/JavaWeb/JavaWeb/log4j.md create mode 100644 sitemap/index.html diff --git a/_config.yml b/_config.yml index c379c6d..3cfb726 100644 --- a/_config.yml +++ b/_config.yml @@ -107,6 +107,7 @@ pages_list: Blog: '' Categories: 'categories' Archives: 'posts' +# SiteMap: 'sitemap' # Contact: 'contact' About: 'about' diff --git a/_data/sitemap.yml b/_data/sitemap.yml new file mode 100644 index 0000000..95268a3 --- /dev/null +++ b/_data/sitemap.yml @@ -0,0 +1,9 @@ +# sitemap navigation links + +- title: 百度 + icon: ddd.jpg + url: www.baidu.com + url2: https://www.baidu.com/s?word=%E7%99%BE%E5%BA%A6%E8%B4%B4%E5%90%A7& + +- title: External Link + url: http://mademistakes.com diff --git a/note/apacheServer/apachehttpd.md b/_posts/apacheServer/2016-07-08-apache-server-tomcat.md similarity index 65% rename from note/apacheServer/apachehttpd.md rename to _posts/apacheServer/2016-07-08-apache-server-tomcat.md index 44b722d..085acd0 100644 --- a/note/apacheServer/apachehttpd.md +++ b/_posts/apacheServer/2016-07-08-apache-server-tomcat.md @@ -1,8 +1,8 @@ --- layout: post -title: Apache 与 Tomcat 服务器集成和集群配置 -description: "" -modified: 2016-07-06 15:20:20 +title: Apache与Tomcat服务器集成和集群配置 +description: "Apache与Tomcat服务器集成和集群配置,通过mod_jk的方式进行Tomcat和Apache的集成" +modified: 2016-07-08 15:20:20 tags: [Apache,Apache Server,Tomcat] post_type: developer series: @@ -14,9 +14,6 @@ image: --- -## Apache 与 Tomcat 服务器集成和集群配置 - - ## 一、集成原因 Tomcat的功能分为以下两个主要部分: @@ -29,34 +26,55 @@ Tomcat的功能分为以下两个主要部分: 还有在高并发的情况下,单个的Tomcat无法提供大量的http请求,需要使用Apache分发到多个Tomcat组成的集群,这样达到更大并发性的效果。 -## 一、环境 +## 二、集成原理 + +1、Tomcat服务器是通过Connector连接器组件与客户端程序建立连接,它负责接收客户端的请求,并把Tomcat服务器的响应结果发送给客户端。在server.xml中默认存在以下2个连接器组件: + +{% highlight xml %} + + + + +{% endhighlight %} + +第一个连接器是HTTP连接器,监听8080端口,负责建立HTTP链接。在使用Tomcat作为HTTP服务器时就是用的该连接器。 -OS: Cent OS 7 -JDK: 1.7 -Tomcat: apache-tomcat-7.0.65 -Apache Server: httpd-2.4.20 +第二个连接器是AJP连接器,监听8009端口,负责和其它的HTTP服务器建立连接。与其它服务器集成时就是用到这个连接器。 -## 二、安装 +2、JK插件 + +Tomcat提供了专门的JK插件来负责与其它HTTP服务器的通信,该插件需要安置在对应的HTTP服务器上,它根据预先配置好的URL映射信息,决定是否把客户请求转发给Tomcat服务器。 + + +## 三、环境 + +- OS: Cent OS 7 +- JDK: 1.7 +- Tomcat: apache-tomcat-7.0.65 +- Apache Server: httpd-2.4.20 + + +## 四、安装 ### 1.安装依赖 -``` +{% highlight bash %} yum install apr apr-util yum install pcre-devel openssl-devel -``` +{% endhighlight %} **apr安装** 官网:http://apr.apache.org/ -``` +{% highlight bash %} tar -zxvf apr-1.5.2.tar.gz cd apr-1.5.2 ./configure --prefix=/staples/apr make && make install -``` +{% endhighlight %} @@ -65,21 +83,21 @@ make && make install 官网:http://apr.apache.org/ -``` +{% highlight bash %} tar -zxvf apr-util-1.5.4.tar.gz cd apr-util-1.5.4 ./configure --prefix=/staples/apr-util --with-apr=/staples/apr/ make && make install -``` -### 2.httpd安装 +{% endhighlight %} -[Apache Server官网](https://httpd.apache.org/),下载源码包。 +### 2.httpd安装 -mod_jk插件下载[地址](http://tomcat.apache.org/connectors-doc/),下载:tomcat-connectors-1.2.41-src.tar.gz +[Apache Server官网](https://httpd.apache.org/),下载源码包。 +编译安装: -``` +{% highlight bash %} ./configure \ --with-apr=/staples/apr \ --with-apr-util=/staples/apr-util \ @@ -95,15 +113,20 @@ mod_jk插件下载[地址](http://tomcat.apache.org/connectors-doc/),下载:to --enable-mpms-shared=all -``` +{% endhighlight %} -编译安装mod_jk模块 +### 3.mod_jk 插件安装 -``` - tar -zxvf tomcat-connectors-1.2.41-src.tar.gz +mod_jk插件下载[地址](http://tomcat.apache.org/connectors-doc/),下载:tomcat-connectors-1.2.41-src.tar.gz - cd tomcat-connectors-1.2.41-src/ - cd native/ + +编译安装mod_jk模块: + +{% highlight bash %} +tar -zxvf tomcat-connectors-1.2.41-src.tar.gz + +cd tomcat-connectors-1.2.41-src/ +cd native/ ./configure --with-apxs=/staples/apachehttpd/bin/apxs #这里指定的是apache安装目录中apxs的位置,这个apxs方便我们动态加载模块 @@ -113,13 +136,13 @@ make # 将mod_jk.so文件复制到apache的modules文件夹下 cp apache-2.0/mod_jk.so /staples/apachehttpd/modules/ -``` +{% endhighlight %} -### httpd配置 +### 4.Apache Server配置文件 在/staples/apachehttpd/conf下面建立两个配置文件mod_jk.conf和workers.properties。 -``` +{% highlight bash %} # vi mod_jk.conf # 添加以下内容: @@ -148,9 +171,10 @@ JkRequestLogFormat "%w%V %T" # 集群模式下,将所有请求发送给负载平衡器 JkMount /* loadbalancer -``` +{% endhighlight %} -``` + +{% highlight bash %} # vi workers.properties # 添加以下内容: @@ -173,33 +197,34 @@ worker.worker2.lbfactor=100 # 负载平衡因数,指工作负荷 worker.loadbalancer.type=lb # 负载平衡器 worker.loadbalancer.balanced_workers=worker1,worker2 -worker.loadbalancer.sticky_session=false # 粘性复制为false,即不会进行会话复制。即一个客户端访问了tomcat1,则始终由它来服务 -worker.loadbalancer.sticky_session_force=false # 粘性复制为false,该参数影响不大。如果粘性复制为true,sticky_session_force为true,客户会收到500的错误。如果为false,负载平衡器会重新请求正常的服务器。 +worker.loadbalancer.sticky_session=true +# 此处指定集群是否需要会话复制,如果设为true,则表明为会话粘性,不进行会话复制,当某用户的请求第一次分发到哪台Tomcat后,后继的请求会一直分发到此Tomcat服务器上处理;如果设为false,则表明需求会话复制。 +worker.loadbalancer.sticky_session_force=true +# 如果上面的sticky_session设为true时,建议此处也设为true,此参数表明如果集群中某台Tomcat服务器在多次请求没有响应后,是否将当前的请求,转发到其它Tomcat服务器上处理;此参数在sticky_session=true时,影响比较大,会导致转发到其它Tomcat服务器上的请求,找不到原来的session,所以如果此时请求中有读取session中某些信息的话,就会导致应用的null异常 -``` -workers.properties配置文件tomcat官方文档http://tomcat.apache.org/connectors-doc/reference/workers.html + +{% endhighlight %} +workers.properties配置文件[tomcat官方文档](http://tomcat.apache.org/connectors-doc/reference/workers.html) 修改http.conf,在文件末尾加入以下内容 -``` +{% highlight apache %} LoadModule jk_module modules/mod_jk.so Include /staples/apachehttpd/conf/mod_jk.conf -``` - -## 三、与tomcat集成 +{% endhighlight %} +### 5.Tomcat配置 -jvmRoute="worker1" 修改Tomcat的conf/server.xml文件中的AJP连接器的端口,确保它们和workers.properties文件中的配置对应。此外,在使用了loadbalancer后,要求worker的名字和Tomcat的server.xml文件中的元素的jvmRoute属性一致 Tomcat修改如下: -``` +{% highlight xml %} @@ -207,9 +232,9 @@ Tomcat修改如下: -``` +{% endhighlight %} -``` +{% highlight xml %} @@ -217,10 +242,27 @@ Tomcat修改如下: -``` +{% endhighlight %} + + +测试页面 + +最后编辑Tomcat的配置文件server.xml,在HOST段中加入: + +{% highlight xml %} + + + +{% endhighlight %} + +在/var/wwwroot下建立一个index.jsp,启动Apache和Tomcat,用浏览器访问http://localhost/,应该可以看到正确的页面了。 + + + +
tomcat集群管理器 ``` @@ -264,3 +306,4 @@ tomcat集群管理器 ``` +
diff --git a/images/icon/baiduzhongban-4.gif b/images/icon/baiduzhongban-4.gif new file mode 100644 index 0000000000000000000000000000000000000000..037358c82d5f8fdac84763b49df60cee909294a7 GIT binary patch literal 3172 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 literal 0 HcmV?d00001 diff --git a/note/JavaWeb/JavaWeb/log4j.md b/note/JavaWeb/JavaWeb/log4j.md new file mode 100644 index 0000000..9451d6c --- /dev/null +++ b/note/JavaWeb/JavaWeb/log4j.md @@ -0,0 +1,61 @@ + +## log4j与commons-logging,slf4j的关系 + +### commons-logging + +common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。所以使用common-logging,通常都是配合着log4j来使用。使用它的好处就是,代码依赖是common-logging而非log4j, 避免了和具体的日志方案直接耦合,在有必要时,可以更改日志实现的第三方库。 + +JCL+Log4J组合使用模式(即commons-logging+log4j): + +1. commons-logging-1.1.jar +2. log4j-1.2.15.jar +3. log4j.properties + +JCL+log4j: + +```java +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +private static Log log = LogFactory.getLog(xx.class); +``` + +### log4j + +slf4j全称为Simple Logging Facade for JAVA,java简单日志门面。类似于Apache Common-Logging,是对不同日志框架提供的一个门面封装,可以在部署的时候不修改任何配置即可接入一种日志实现方案。但是,他在编译时静态绑定真正的Log库。使用SLF4J时,如果你需要使用某一种日志实现,那么你必须选择正确的SLF4J的jar包的集合(各种桥接包)。 + +slf4j+log4j组合使用模式: + +1. slf4j-api-1.5.11.jar +2. slf4j-log4j12-1.5.11.jar +3. log4j-1.2.15.jar +4. log4j.properties(也可以是 log4j.xml) + +slf4j+log4j: + +```java +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +Logger logger = LoggerFactory.getLogger(xx.class); +``` + + + +log4j: + +```java +import org.apache.log4j.Logger; +Logger logger= Logger.getLogger(xx.class); +``` + +总结 + +总的来说,slf4j与commons-logging只是一个日志门面,实际还是要依赖真正的日志库log4j,虽然slf4j和commons-loggins自带了日志库,但是毕竟log4j才是最强大的。 + + + +## log4j.properties配置详解与实例 + +``` + + +``` diff --git a/sitemap/index.html b/sitemap/index.html new file mode 100644 index 0000000..10ecca5 --- /dev/null +++ b/sitemap/index.html @@ -0,0 +1,28 @@ +--- +layout: post-index +title: site Map +description: "" +comments: true +modified: 2016-07-08 +section-type: page +image: + feature: posts_header/abstract-1.jpg +--- + + + +
+ +
+ +# 开发中。。。。