标签 Tomcat 下的文章

Apache是最流行的web服务器,它通常用来接收客户端的请求并响应。它得到一个URL并将它翻译成一个文件名(或者静态请求),并将文件从本地磁盘中取出,通过因特网返回;或者将它翻译成程序执行它,接着将输出返回给请求方。如果web服务器不能处理和完成请求,它会返回一个错误信息。

在本篇中,我们会列出Apache的特性以及我们该如何用mod\_jk连接器来集成Tomcat 7和Tomcat 8。

Apache的特性

如我们所说Apache是最流行的web服务器。下面是流行背后的原因:

  • 它是自由工具,你可以很简单地下载和安装
  • 它开放源码,因此你可以查看源码,调整它,优化它,并且修复错误和安全漏洞。也可以增加新的功能和模块。
  • 它可以用在只有一两个页面的小网站,或者是有成千上万个页面的大网站,每月处理上百万的常规访问者的请求。它可以同时处理静态和动态内容。
  • 改进的缓存模块(mod\_cache、 mod\_disk\_cache、 mod\_mem\_cache)。
  • Apache 2 支持 IPv6.

Tomcat 的目录

${tomcat\_home} 是tomcat的根目录。你的tomcat安装应该有下面的子目录:

  • ${tomcat\_home}\conf – 存放不同配置文件的地方
  • ${tomcat\_home}\webapps – 包含示例程序
  • ${tomcat\_home}\bin – 存放你的Web服务器的插件的地方

Mod\_jk 模块

mod\_jk有两种可接受的方式:二进制或者源码。取决于你运行的web服务器的平台,也许有符合你的平台的二进制版本的mod\_jk。如果有的话建议使用这个。

mod\_jk模块在这些平台上开发及测试过:

  • Linux、 FreeBSD、 AIX、 HP-UX、 MacOS X、 Solaris ,应该在主流的支持Apache 1.3 和/或者 2.x的Unix平台上都工作。
  • WinNT 4.0-i386 SP4/SP5/SP6a (应该可以与其他的服务包一起工作), Win2K 和 WinXP 和 Win98
  • Cygwin (需要你有apache服务器及autoconf/automake支持工具)
  • Netware
  • i5/OS V5R4 (System I) ,带有 Apache HTTP Server 2.0.58。 确保已经安装了最新的 Apache PTF
  • Tomcat 3.2 到 Tomcat 8

The mod\_jk 需要两个组件:

  • mod\_jk.xxx – Apache HTTP服务器模块,取决于你的操作系统,它可能是mod\_jk.so、mod\_jk.nlm或者mod\_jk.SRVPGM。
  • workers.properties - 描述Worker (Tomcat进程)所用的主机以及处理器使用的端口。在下载的源码的conf目录下找到示例的workers.properties文件。

和Apache HTTP服务器其他的模块一样,mod\_jk应该安装在你的Apache服务器下的模块目录下:/usr/lib/apache,而且你应该更新你的httpd.conf文件。

安装

在开始安装前,非root用户需要使用“sudo”特权。现在我们开始安装,我们将使用下面的命令来安装Apache2和Tomcat:

sudo apt-get install apache2    
sudo apt-get install tomcat7
sudo apt-get install tomcat7-admin

下面,我们将会使用如下的命令来创建一个测试程序:

cd /var/lib/tomcat7/webapps
sudo mkdir tomcat-demo
sudo mkdir tomcat-demo/goodmoring
sudo vim tomcat-demo/helloworld/index.jsp

并粘贴下面的代码到上述的 index.jsp:

<HTML> 
 <HEAD>  
  <TITLE>Good Morning</TITLE> 
 </HEAD> 
 <BODY>  
  <H1>Good Morning</H1>   
  Today is: <%= new java.util.Date().toString() %> 
 </BODY>
</HTML>

一切完毕后,我们将使用下面的命令安装和配置mod\_jk:

sudo apt-get install libapache2-mod-jk

我们需要使用下面的命令启用Tomcat的8443转发端口:

sudo vim /etc/tomcat7/server.xml

解除下面的注释行:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

之后,我们将用下面的命令为Apache创建workers.properties文件:

sudo vim /etc/apache2/workers.properties

粘贴下面的行:

# Define 1 real worker using ajp13 
 worker.list=worker 
 # Set properties for worker (ajp13) 
 worker.worker.type=ajp13 
 worker.worker.host=localhost
 worker.worker.port=8009

现在我们将使用下面的命令来让Apache使用这个worker:

sudo vim /etc/apache2/mods-available/jk.conf

我们将JkWorkersFile属性成下面这行:

/etc/apache2/workers.properties

最后配置Apache交给Tomcat处理的URL

sudo vim /etc/apache2/sites-enabled/000-default

我们将在配置文件中下面的行:

<VirtualHost *:80>
.......................................
.......................................
JkMount /tomcat-demo* worker1
</VirtualHost *:80>

现在用下面的命令重启服务来检查它们的功能:

sudo /etc/init.d/tomcat7 restart
sudo /etc/init.d/apache2 restart

总结

在本篇中我们展示了你该如何使用mod\_jk连接器配置和安装Apache2以及Tomcat7。


via: http://www.unixmen.com/integrate-apache2-tomcat-7-using-mod_jk-connector/

作者:anismaj 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

今天我们来学习一下如何在CentOS 7 Linux分布式系统中为Tomcat绑定IPv4。

Apache Tomcat 是由Apache 软件基金会 开发的开源web服务器和servlet容器。它实现了Java Servlet,JavaServer页面(JSP),Java的统一表达式语言,以及Sun Microsystems的Java的WebSocket规范,并提供了一个运行java代码的web服务器环境。

如果由于tomcat默认绑定到IPv6而导致我们的web服务器不能正常工作,就有必要将tomcat绑定到IPv4。众所周知,IPv6是为设备分配IP地址的现代方法,虽然在不久的将来也许会得到应用,但是现在并没有得到完全应用。由于没有用处,目前我们并不需要将我们的Tomcat服务器向IPv6转换,我们应该将其绑定到IPv4。

在开始将tomcat绑定到IPv4之前,我们应该确保在我们的CentOS 7中已经安装了tomcat。可以看这个如何在CentOS 7.0服务器中安装tomcat 8的指导。

1. 切换到tomcat用户

首先,我们要切换到 tomcat 用户。我们可以通过在shell或者终端中运行 su tomcat 命令完成。

# su tomcat

切换到tomcat用户

2. 找到文件 Catalina.sh

现在我们要进入Apache Tomcat安装目录下的bin文件夹,通常是 /usr/share/apache-tomcat-8.0.x/bin/, 这里的x是 Apache Tomcat发行版的子版本号。因为我的CentOS 7服务器中安装的版本是8.0.18,这里我的目录是 /usr/share/apache-tomcat-8.0.18/bin/

$ cd /usr/share/apache-tomcat-8.0.18/bin

注意:请用你系统中安装的Apache Tomcat的版本号替换8.0.18。

在bin目录中,有一个名字是catalina.sh的脚本文件。这就是我们要编辑的文件,我们将在里面增加一行将tomcat绑定到IPv4的配置信息。你可以通过在shell或者终端中运行命令 ls 来查看这个文件。

$ ls

查找文件 catalina.sh

3. 配置 Catalina.sh

如图所示,我们将在catalina.sh脚本文件的最后增加一行 JAVA_OPTS= "$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses"。我们可以使用我们喜欢的文本编辑器来编辑这个文件,例如nano、vim等等。这里我们使用nano。

$ nano catalina.sh

Catalina script

然后,如下图所示,将该行增加到文件。

配置 catalina

现在,我们已经将配置信息增加到文件中。保存文件并退出nano。

4. 重启

现在,我们通过重启tomcat服务器使配置生效。我们要先运行shutdown.sh,然后运行startup.sh。

$ ./shutdown.sh

运行可执行文件startup.sh:

$ ./startup.sh

重启apache tomcat 服务器

这将重启我们的tomcat服务器并加载将服务器绑定到IPv4的配置信息。

结尾

好了,我们终于将我们运行在CentOS 7 Linux发行版上的tomcat服务器绑定到IPv4上了。尽管IPv6在不久的将来也许会得到应用,但由于现在还没有使用,如果因为将你的Tomcat服务器绑定到IPv6上而使得你的tomcat服务器不工作,就有必要将tomcat绑定到IPv4上,这也很简单。如果你有任何疑问,建议,反馈,请在下面的评论框中写下来,让我们知道有什么需要增加或者改进。非常感谢!


via: http://linoxide.com/linux-how-to/bind-apache-tomcat-ipv4-centos/

作者:Arun Pyasi 译者:ictlyh 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

据 Tomcat 安全组确认,Tomcat 全系列产品均被发现严重安全漏洞:CVE-2014-0227 请求夹带漏洞。

级别:严重

受影响版本:

  • Apache Tomcat 8.0.0-RC1 to 8.0.8
  • Apache Tomcat 7.0.0 to 7.0.54
  • Apache Tomcat 6.0.0 to 6.0.41

描述:可以通过构造一个截断请求而在请求数据中夹带一个新的请求。

解决方案

升级到最新版本:

  • 升级到 Apache Tomcat 8.0.9 及其以上
  • 升级到 Apache Tomcat 7.0.55 及其以上
  • 升级到 Apache Tomcat 6.0.43 及其以上(6.0.42 包含了该修复,但是并未发布)