CentOS 6.5 Apache与Tomcat整合并配置Https

1. 准备工作

1. 安装apxs

yum install -y httpd-devel

安装完成后,查看/usr/sbin/apxs目录是否存在,如果不存在,则通过命令

whereis apxs

查找apxs的安装路径(待会要用,此处默认是/usr/sbin/apxs)

2. 安装libtool

yum install libtool

3. 安装编译器

yum install gcc-c++

4. 安装make

yum install make

2. 安装并配置httpd服务

httpd是什么?

早期的apache小组,现在已经成为一个拥有巨大力量的apache基金会。

他们把起家的apache更名为httpd,也更符合其http server的特性。而apache现在成为apache基金会下几十种开源项目的标识。

apache和httpd是一个,到apache2后就叫httpd了。

另外,apache安装后也是有个httpd脚本来控制启动、关闭的。

1. 安装httpd

yum install httpd

2. 设置httpd开机自动启动

chkconfig httpd on

3. 启动httpd服务

service httpd start

此时,访问127.0.0.1,应该可以看见apache的启动欢迎界面

3. 配置"Tomcat和apache的连接器"

1. 下载tomcat-connectors-1.2.41-src.tar.gz

wget http://mirrors.aliyun.com/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.41-src.tar.gz

2. 解压

tar xvzf tomcat-connectors-1.2.41-src.tar.gz

3. 进入目录

cd tomcat-connectors-1.2.41-src.tar.gz/native

4. 编译并安装

./configure --with-apxs=/usr/sbin/apxs

make && make install

5. 拷贝模块文件

进入apache-2.0目录

cd apache-2.0

将mod_jk.so拷贝至httpd的模块文件夹下

cp mod_jk.so /etc/httpd/modules

6. 进入httpd配置目录,编辑配置文件httpd.conf

cd /etc/httpd/conf

vim httpd.conf

找到ServerName的配置项,将其值改为你的域名

找到一堆LoadModule的地方,添加

LoadModule jk_module modules/mod_jk.so

再找到Include conf.d/*.conf,在这句后面加

Include /etc/httpd/conf/mod_jk.conf

保存并退出。

新建文件mod_jk.conf,并编辑

vim mod_jk.conf

添加如下内容

JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /etc/httpd/logs/mod_jk.log
JkLogLevel info
JkRequestLogFormat "%w %V %T"
JkMount /*  worker1
JkMount /*.jsp worker1

保存并退出。

新建文件workers.properties,并编辑

vim workers.properties

添加如下内容

worker.list=worker1
worker.worker1.type=ajp13 
worker.worker1.host=[这里写你的域名]
worker.worker1.port=8009
worker.worker1.lbfactor=50 
worker.worker1.cachesize=10 
worker.worker1.cache_timeout=600 
worker.worker1.socket_keepalive=1 
worker.worker1.socket_timeout=300

4. 配置VirtualHost

编辑httpd.conf

vim httpd.conf

找到并注释掉DocumentRoot这一项配置。

找到最后<VirtualHost *:80>

修改其中配置。
ServerAdmin可以写root@localhost
ServerName写自己的域名
最主要的是DocumentRoot,改成tomcat下的项目路径。比如说*/tomcat/webapps/HelloWorld/

5. 启动Tomcat,重启Httpd

./catalina.sh start && service httpd restart

此时,通过http可以访问tomcat的项目。可以通过开发者模式查看响应头,应该会有这样的信息
信息

6. 配置Https

1. 安装https所需要的模块

yum install mod_ssl openssl

2. 在某一目录上传你的证书

此处假设上传目录为

/home/ssl/ca.crt
/home/ssl/ca.key
/home/ssl/bundle.crt

3. 修改ssl相关的配置文件

vim /etc/httpd/conf.d/ssl.conf

配置443端口的虚拟主机

<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /home/ssl/ca.crt
SSLCertificateKeyFile /home/ssl/ca.key
SSLCACertificateFile /home/ssl/bundle.crt
ServerAdmin email@example.com
DocumentRoot /var/www/html/virtual-web
ServerName virtual-web.example.com
</VirtualHost>

其中关键还是DocumentRoot,可以参考第四步的配置。

4. 重启httpd服务

service httpd restart

7. 请尽情使用吧

8. 参考资料

  1. 如何在CentOS配置Apache的HTTPS服务

  2. CentOS环境下整合Apache和Tomcat

  3. Apache Http 服务器 2.2 文档

****

Thanks for Reading

Jiahao.Zhang
NetEase Inc. Hangzhou 
        Front-End Developer