CentOS 6.5 Apache与Tomcat整合并配置Https

本贴最后更新于 2766 天前,其中的信息可能已经事过景迁

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 文档

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    914 引用 • 930 回帖 • 1 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    163 引用 • 529 回帖
  • 教程
    139 引用 • 476 回帖 • 7 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...