Apache-tomcat开启Apr模式http,https--Ubuntu

我们在使用tomcat的时候有很多情况下需要用到Apr模式来支持高并发,这里就讲一下如果开启tomcat的Apr协议,并演示配置http和https两种连接器。

首先你得有一个tomcat然后就可以进行下面的工作了。关于tomcat服务器的准备可以查看其他几篇文章,主要可以看:

https://blog.csdn.net/hyklose/article/details/81204826

(一)开启Apr服务

想要开启apr服务,你需要在你的ubuntu上安装下面这些程序,有的可能你已经有了,如果没有就全部安装吧:

software command
libapr-dev sudo apt-get install libapr1-dev
libssl-dev sudo apt-get install libssl-dev
libexpat-dev sudo apt-get install libexpat1-dev
gcc sudo apt-get install gcc
make sudo apt-get install make

除此之外还需要apache的tomcat-native。最新的apach已经在bin下面包含了tomcat-native,如果你没有就先去apache官网下载一个tomcat的包,然后去bin下面找到。

http://mirrors.sorengard.com/apache/tomcat/tomcat-9/v9.0.10/bin/apache-tomcat-9.0.10.tar.gz

可以直接解压:

root@ubuntu:~/opt/apache-tomcat-9.0.10/bin# tar -zxvf tomcat-native.tar.gz

然后进入文件夹进行编译安装:

root@ubuntu:~/opt/apache-tomcat-9.0.10/bin# cd tomcat-native-1.2.17-src/native/
root@ubuntu:~/opt/apache-tomcat-9.0.10/bin/tomcat-native-1.2.17-src/native# ./configure --with-java-home=/usr/lib/jvm/default-java
root@ubuntu:~/opt/apache-tomcat-9.0.10/bin/tomcat-native-1.2.17-src/native# make
root@ubuntu:~/opt/apache-tomcat-9.0.10/bin/tomcat-native-1.2.17-src/native# make install

然后重启tomcat:

root@ubuntu:~/opt/apache-tomcat-9.0.10/bin/tomcat-native-1.2.17-src/native# service tomcat restart

现在你得tomcat就是可以使用apr协议的了。

扫描二维码关注公众号,回复: 2436787 查看本文章

(二)配置http的Apr连接器

虽然我们开启了tomcat的Apr协议,但是还要配置连接器。http连接器的配置和简单,只要修改conf下的server.xml文件就可以了,在conf/server.xml中找到下面:

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

修改protocol就可以了,修改为下面的样子:

    <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
               connectionTimeout="20000"
               redirectPort="8443" />

然后再重启tomcat就可以了。

root@ubuntu:~/opt/apache-tomcat-9.0.10/conf# service tomcat restart

这时候我们可以去看一下tomcat的启动log:

root@ubuntu:~/opt/apache-tomcat-9.0.10/conf# vi ../logs/catalina.2018-07-25.log

如果可以找到下面的描述并且下面没有错误,就说明Apr协议的http连接器成功启动了:

25-Jul-2018 08:27:38.004 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"]

(三)配置https的Apr连接器

https的连接器配置要麻烦一些,我们需要首先生成一个openssl的X509公钥和私钥对。

我们首先来生成openssl的CA密钥,如果你没有安装openssl,请安装一下:

root@ubuntu:~# sudo apt-get install openssl

然后使用下面命令生成key:

root@ubuntu:~# openssl genrsa -des3 -out server.key 2048

这是一个带密码的key,会要你输入一个密码,如果你想要一个不带密码的key,可以在执行一下下面命令:

root@ubuntu:~# openssl rsa -in server.key -out server.key

它会要你再次输入以下上面的密码,但是这之后,key就没有密码了。

然后我们生成CA的crt文件,使用下面命令:

root@ubuntu:~# openssl req -new -x509 -key server.key -out ca.crt -days 3650

然后我们生成csr文件,使用下面命令:

root@ubuntu:~# openssl req -new -key server.key -out server.csr

最后我们生成最终crt文件,使用下面命令:

root@ubuntu:~# openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server

这样我们就得到了三个有用的密钥文件,他们分别是server.crt,server.key,ca.crt。

有人可能会说他经常见到一种.pem的密钥文件,如果你需要,可以使用下面命令生成:

root@ubuntu:~# cat server.key server.crt > server.pem

到此为止我们所需要的公钥私钥就全部生成了,接下来我们需要配置下tomcat服务器开启https的Apr连接器,依旧是修改conf/server.xml文件,添加下面一段(主要不要添加在结尾,要在</Service>上面,也可以找到相似,添加在旁边):

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
               maxThreads="200" scheme="https" secure="true" SSLEnabled="true"
               SSLCertificateFile="/root/server.crt"
               SSLCertificateKeyFile="/root/server.key"
               SSLVerifyClient="optional" SSLProtocol="TLSv1+TLSv1.1+TLSv1.2"/>

然后重启tomcat服务器:

root@ubuntu:~# service tomcat restart

这样我们就开启了tomcat的Apr协议,可以查看一下log文件:

root@ubuntu:~/opt/apache-tomcat-9.0.10/conf# vi ../logs/catalina.2018-07-25.log

如果可以找到下面的描述并且下面没有错误,就说明Apr协议的https连接器成功启动了:

25-Jul-2018 10:17:49.003 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["https-openssl-apr-8443"]

猜你喜欢

转载自blog.csdn.net/hyklose/article/details/81208404