前言

配置完SSL,我其实还是希望通过wireshark分析一下SSL握手协议,APR模式其实是想用来尝试下能否实现握手协议的,毕竟加入了openssl。事实证明,并没有相关干系,但毕竟折腾了挺久的,还是稍作记录下=。=

BIO NIO APR模式的比较

BIO:采用Java IO技术,单线程处理单请求(Tomcat7以下默认)
NIO:采用Java NIO技术,少量线程处理大量请求(Tomcat8以上默认)
APR:采用Jni技术,从操作层面解决io阻塞问题,适合高并发场景
处理请求方面:BIO

配置环境

系统:OSX10.11.4 64位
Xcode版本: 7.3.1
tomcat版本:8.0.33
jdk版本:1.8.0_77

相关文件准备

1.APR library
2.OpenSSL libraries
3.Java SE Development Kit (JDK)
下载dmg的格式直接安装即可
4.tomcat native

apr安装

解压apr包,注意留意README文档,里面有相关的信息
默认安装目录在 /usr/local/apr
安装的时候注意使用管理员权限,sudo command ~

cd apr
./configure
make
make install

openssl安装

解压openssl包,注意INSTALL文档
默认安装目录为 /usr/local/ssl
安装的时候,如果是64位的机子,配置文件需要使用

./Configure darwin64-x86_64-cc

自动配置则使用

./config

编译安装:

make
make install

tomcat-native安装

解压之后,在/tomcat-native/native/里有BUIDING文档

./configure --with-apr=/usr/local/apr--with-ssl=/usr/local/ssl--with-java-home=${JAVA_HOME}

JAVA_HOME需要给出jdk的安装目录

make
make install

生成成功后,会在/usr/local/apr/lib下有libtcnative-1.0.dylib的库文件,这个就是tomcat启动的依赖库,需要把该文件软链接到警告中提到的任一目录内。

ln -s /usr/local/apr/lib/libtcnative-1.dylib /Library/Java/Extensions/

注意这里并不是直接链接源文件,而是链接源文件的软链接
ln命令的介绍

tomcat server.xml配置

1.开启APR监听

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

2.配置APR Connectors

<Connector port="443" maxHttpHeaderSize="8192"maxThreads="150"enableLookups="false" disableUploadTimeout="true"acceptCount="100" scheme="https" secure="true"SSLEnabled="true"SSLCertificateFile="${服务器签名好的证书.crt}"SSLCertificateKeyFile="${服务器的密钥.pem}" />

参考:http://tomcat.apache.org/tomcat-8.0-doc/apr.html

问题

1.UnsatisfiedLinkError

Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/wangtao/work/apache-tomcat/tcnative/trunk/native/.libs/libtcnative-1.0.dylib:dlopen(/Users/wangtao/work/apache-tomcat/tcnative/trunk/native/.libs/libtcnative-1.0.dylib,1): Symbol not found: _OCSP_RESPONSE_new

这个是因为openssl未完全编译引起的,主要是64bit系统没有按照64bit编译的方式执行,编译前应该执行下面操作

./Configure darwin64-x86_64-cc

参考:https://qnalist.com/questions/6290333/tomcat-native-1-2-2

2.配置tomcat-native没有头文件

fatal error: stdio.h: No such file or directory

原因:安装Xcode的时候没有安装命令行操作工具
解决方案:
xcode-select –install

参考:http://stackoverflow.com/questions/19580758/gcc-fatal-error-stdio-h-no-such-file-or-directory

3.配置tomcat-native找不到gcc或者cc的路径

原因:查找的路径不是默认的路径
解决方案:

ln -s 你的gcc或者cc安装目录/usr 报错信息的目录

总结

配置环境其实还是蛮好玩的,好好看看官方文档,然后自己摸索摸索把环境搭好,内心还是灰常欣慰的哈~
遇到问题的时候,尝试通过日志记录的信息,然后一步一步排除问题。对于每个指令,理解并知道其本质原理,上手起来其实都是很easy~恩,多动动手,linux多折腾折腾的确会很有意思呢~

mac下tomcat启用APR模式相关推荐

  1. Tomcat开启APR模式并设置Tomcat为开机自启动服务

    一.Tomcat Tomcat Connector(Tomcat连接器)有三种运行模式:bio.nio.apr. 1.BIO模式 ​ 阻塞式I/O操作,表示Tomcat使用的是传统Java I/O操作 ...

  2. Mac下sublime text3列模式下插入顺序数字编号

    Mac下sublime text3列模式下插入顺序数字编号 相信大家在工作工程中会遇到在操作在某段文本时,需要批量操作同一列多行数据时,需要在每行相同的列位置添加类同的内容,煞是费时. 接下来我们要介 ...

  3. 开启tomcat的apr模式,并利用redis做tomcat7的session的共享。

    更新系统组件 yum -y install readline* xmlto kernel-devel yum* screen vim* psmisc wget lrzsz pcre-devel lib ...

  4. mac下tomcat启动失败

    新买的小本本安装tomcat时,出现了一个bug,终端显示 Tomcat started. 但是访问8080,显示找不到网页. 查看了tomcat的logs 显示的jdk路径下jdk版本为1.7 /L ...

  5. Mac下Tomcat乱码的问题

    2019独角兽企业重金招聘Python工程师标准>>> tomcat的server.xml <Connector port="8080" protocol= ...

  6. spring boot内嵌tomcat优雅的开启apr模式

    文章目录 简介 Win下开启APR Linux下开启APR 把lib打进jar包 简介 环境: jdk8.spring boot 2.3.4.RELEASE.centOS7.3.win7 在sprin ...

  7. mac模式怎样构造在jsp中_在MAC下搭建JSP开发环境

    1.Mac下JDK的下载安装及配置 在安装jdk之后,需要为jdk安装目录配置环境变量: 任意打开终端,默认是家目录的,然后直接输入: touch .bash_profile 然后输入:vi .bas ...

  8. Mac下配置tomcat 报错Cannot run program “/Users/xxxxxxx/Library/Tomcat/bin/catalina.sh“ 解决办法

    Mac下tomcat,调试后报错Cannot run program "/Users/xxxxx/Library/Tomcat/bin/catalina.sh" (in direc ...

  9. 在MAC下搭建JSP开发环境

    1.Mac下JDK的下载安装及配置 在安装jdk之后,需要为jdk安装目录配置环境变量: 任意打开终端,默认是家目录的,然后直接输入: touch .bash_profile 然后输入:vi .bas ...

最新文章

  1. 华华和月月种树(牛客)
  2. flask项目中无法更改端口号
  3. 算法训练 P0103
  4. HTML5 Canvas爱心时钟代码
  5. 杭电c语言课程设计实验7,杭电1072 BFS 大神给看看啊 郁闷整整10个小时了 不知道哪里错wa...
  6. 开启tomcat的apr模式,并利用redis做tomcat7的session的共享。
  7. QT的QTextCodec类的使用
  8. arcgis 分区 属性值_如何使用ArcGIS计算分区河流(管线)总长度
  9. VirtualBox下安装MacOS11
  10. 万能的林萧说:我来告诉你,一个草根程序员如何进入BAT。 - 今日头条(www.toutiao.com)...
  11. caffe常用格式binaryproto和leveldb
  12. Python命令行程序项目自动化GUI显示操作神器Gooey实践
  13. 性能起飞、英特尔12代酷睿处理器强势来袭
  14. html页面透明背景,css 背景透明 元素(标签)背景透明的css设计
  15. JAVA 进制转换工具
  16. 【新征程】1、考研路漫漫
  17. cogs2790. mk和tree解题报告
  18. vue显示格式化的json
  19. 家长会计算机教师致辞,家长会教师致辞最新
  20. 自行车 快拆应该锁多紧

热门文章

  1. NSX-V 安全之逻辑防火墙总结
  2. 计算机720p进制,2K显示器开启HIDPI“720P”
  3. 【报告分享】中国第三方支付市场数字化发展专题分析2021-易观智库(附下载)
  4. python回溯算法_回溯算法经典问题及python代码实现
  5. BGP BFD测试案例
  6. 几行Python代码实现人像动漫化
  7. 掌上围脖LITE版更新到1.1
  8. Centos7 添加网卡
  9. 智能门禁系统解决方案
  10. Ubuntu18.4双网卡同时上内网和外网