apr java_基于 APR 的原生库
基于 APR 的原生库
简介
Tomcat 可以使用 Apache Portable Runtime(APR) 来增强可扩展性与性能,并能更好地与原生服务器技术相集成。APR 是一种具有高度可移植性的类库,是 Apache HTTP Server 2.x 的核心。APR 具有许多用途,包括访问高级 IO 功能(比如 sendfile、epoll 和 OpenSSL)、系统级功能(随机数生成、系统状态,等等)以及原生进程处理(共享内存、NT 管道、UNIX 套接字)。
这些特性能让 Tomcat 成为一种通用的 Web 服务器,更使其更好地与原生的 Web 技术相集成。从整体上来说,这使得 Java 越来越有望成为一个成熟的 Web 服务器平台,而不单纯是一种仅仅着重研究后端的技术。
安装
APR 支持需要安装三个关键的原生组件:
APR 库
Tomcat 所用的 》JNI 包装器
OpenSSL 库
Windows
Windows 安装文件从这里下载 32 位或 AMD 64 位,里面是包含 OpenSSL 和 APR 的集合文件。
Linux
多数 Linux 分发版都会自带 APR 与 OpenSSL 包。JNI 包装器(litcnative)然后被编译。它依赖 APR、OpenSSL 与 Java 头。
需要:
APR 1.2+ 开发头(libarp-1 dev package)
OpenSSL 》》》
Java compatible JDK 1.4+》》
GNU 开发环境(gcc,make)
APR 组件
当所有的库都正确安装好且适用于 Java(如果加载失败,就会显示相关的库路径),Tomcat 连接器就会自动使用 APR。这里,连接器的配置跟通常的配置没什么不同,但会用一些特别的属性来配置 APR 组件。对于大多数用例来说,这些属性的默认值都已经非常适用了,根本不需要再加以微调。
当启用 APR 时,Tomcat 同样也启用了下面这些功能:
默认在所有平台安全会话 ID 生成(Linux 之外的平台需要随机数生成使用配置好的熵)。
关于Tomcat 进程的内存使用和 CPU 使用情况的 OS 级统计,由status servlet所显示。
配置 APR 生命周期侦听器(APR Lifecycle Listener)
AprLifecycleListener
属性
描述
SSLEngine
所要使用的 SSLEngine 名称。off:不使用 SSL。on:使用 SSL,但没有特定引擎。默认值为 on。这将初始化原生的 SSL 引擎,然后使用 SSLEnabled 属性在连接器中》》》。范例:
请访问 OpenSSL 官方网站以详细了解 SSL 硬件引擎与制造商的相关信息。
配置 APR 连接器
HTTP/HTTPS
关于 HTTP 配置的相关信息,可查阅 HTTP 连接器配置文档。
关于 HTTPS 配置的相关信息,可查阅 HTTPS 连接器配置文档。
下面这个范例介绍了 SSL 连接器的声明:
maxThreads="150"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
SSLEnabled="true"
SSLCertificateFile="${catalina.base}/conf/localhost.crt"
SSLCertificateKeyFile="${catalina.base}/conf/localhost.key" />
AJP
关于 AJP 配置的相关信息,可查阅 AJP 连接器配置文档。
apr java_基于 APR 的原生库相关推荐
- 安装了不兼容的APR(基于Apache Tomcat原生库)版本的问题解决
今天运行项目的时候,tomcat抛出异常: "严重: 安装了不兼容的APR(基于Apache Tomcat原生库)版本[1.1.32],而Tomcat要求版本XXX" 解决: 那么 ...
- 安装了不兼容的APR(基于Apache Tomcat原生库)版本[1.1.29]
今天将Windows7上的tomcat从6更新成7,更新完成后,将eclipse配置的tomcat6改成tomcat7,结果启动的时候报错了,报错内容如下: 六月 22, 2016 2:51:12 下 ...
- 在java.library.path中找不到允许在生产环境中实现最佳性能的基于APR的Apache Tom.....
在java.library.path中找不到允许在生产环境中实现最佳性能的基于APR的Apache Tom- 2021-6-2 19:55:17 org.apache.catalina.core.Ap ...
- Tomcat 基于APR的本地库加载失败
警告: 基于APR的本地库加载失败.错误报告为[C:\apache-tomcat-7.0.108\bin\tcnative-1.dll: Can't load AMD 64-bit .dll on a ...
- java 清空控制台_利用原生库和JNI(Java原生接口)实现H2数据库漏洞利用
在H2数据库引擎中获取代码执行权限的技术早已是众所周知,但有个要求就是H2能够动态编译Java代码.而本文将向大家展示以前没有公开过的利用H2的方法,并且无需使用Java编译器,即通过原生库和JNI( ...
- NDK开发之CMake编译构建原生库
参考地址:https://blog.csdn.net/liu3364575/article/details/80091506 https://blog.csdn.net ...
- CV之FD:基于dlib、cv2库利用warpPerspective函数和_68_face_landmarks文件实现AI换脸渐变融合视频效果
CV之FD:基于dlib.cv2库利用warpPerspective函数和_68_face_landmarks文件实现AI换脸渐变融合视频效果 目录 输出结果 设计思路 输出结果 设计思路 实现代码 ...
- NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码
NLP之情感分析:基于python编程(jieba库)实现中文文本情感分析(得到的是情感评分)之全部代码 目录 全部代码 相关文章 NLP之情感分析:基于python编程(jieba库)实现中文文本情 ...
- Python之PIL之绘图:基于Python的PIL库绘制各种图形、添加文字等
Python之PIL之绘图:基于Python的PIL库绘制各种图形.添加文字等 目录 一.绘制各种形状各种案例 1.绘制矩形 2.绘制圆形.弧线形
最新文章
- 西安电子科技大学计算机录取分数,2021年西安电子科技大学投档线及各省最低录取分数线统计表...
- 消息队列之ActiveMQ安装配置
- OpenCV Stitching 工程搭建
- 【Sql查询数据】for 日、月、年
- 用CMD批量ping ip地址
- 创业基础(第三章:创业机会及其识别与评价) 来自高校:全国大学生创新创业实践联盟 分类:创新创业 学习规则:按序学习
- 学生成绩分析系统后端函数解释(Python)
- 徐思/杨玲《面向对象程序设计(Java)》第十一周学习总结
- 彩球滑梯java_玩过这些手机游戏的人都老了 那些曾经风靡一时的手机游戏大盘点(二)...
- (转)格拉布斯准则(Grubbs Criterion)处理数据异常
- 如何确定论文研究方向,看了很多论文还是没有头绪?
- Python小知识:推导式用法大全,Comprehension
- 【翻译】智能制造中EDA 应用及益处系列之四:精密故障检测与分类(FDC)
- 元宇宙类电影这里全了!
- 暗影骑士vn7安装linux,宏碁暗影骑士一代(VN7-591G)拆机清灰教程
- python和表格有什么关系_Python实现和Excel基础功能对应关系
- 安卓web开发!你还在把Java当成Android官方开发语言吗?建议收藏
- 计算机 优质课教案,计算机优质课教案.doc
- 构建数据思维从认知事物的基本方法开始!
- 朴素贝叶斯法 - 垃圾邮件分类
热门文章
- python json unicode_python2下解决json的unicode编码问题
- 20220208--CTF MISC-- BUUCTF--工具stegsolve的使用
- c语言网络编程阻塞,c语言网络编程-设置非阻塞方式
- kettle java 变量传递_kettle的jdk1.7环境变量配置
- 2018牛客网暑期ACM多校训练营(第十场)J	Rikka with Nickname(二分,字符串)
- Luogu2114 [NOI2014]起床困难综合症 【位运算】
- JavaSE基础知识(5)—面向对象(Object类)
- Android 反编译apk文件(转)
- 多表查询返回多个DataTable,合并到一个Table中.
- Qt连接数据库的方法