13. 附录 II - 属性指南
13.1. 通用
13.1.1. 管理员
描述: 指定管理员帐户列表。
默认值: 设置服务器时创建的管理帐户。通常它会类似于 admins = ['admin@server.com']
。
示例: admins = [ 'admin@domain.com', 'user2@domain.com' ]
可能的值: Bare JID的逗号分隔值。
从以下版本开始可用: 2.0.0
13.1.2. 证书容器
证书容器包含与 SSL 证书配置相关的所有配置。这个容器取代了许多以前的 — 属性。
13.1.3. ssl-certs-location
此选项允许您指定存储SSL证书的位置。该属性的含义取决于SSL容器 类实现。默认情况下,它只指向服务器 SSL证书存储在PEM格式文件中的目录。
默认位置是 /certs
,但是可以使用以下设置进行更改:
}
'certificate-container' {
'ssl-certs-location' = '/etc/vhost-certs'
}
这取代了以前的 --ssl-certs-location
属性。
13.1.4. ssl-def-cert-domain
此属性允许您为证书指定默认别名/域名。它主要用于在SSL协商过程中加载未知域名的证书。与TLS协议中在握手时域名是已知的不同,对于SSL域名是未知的,因此服务器不知道使用哪个证书。在此属性中指定域名允许您在这种情况下使用特定域的证书。如果其中一个虚拟域没有证书并且容器不会自动生成自签名证书,则有时也会使用此属性值,那么它可以使用默认证书。
这可以配置如下:
}
'certificate-container' {
'ssl-def-cert-domain' = 'some.domain.com'
}
这取代了以前的 --ssl-def-cert-domain
属性。
13.1.5. 组件
描述: 容器指定组件配置。所有需要配置的组件都必须按以下方式在conf.tdsl文件中调用:
componentName (class: value) {
<configuration>
}
DSL允许对组件进行自定义命名,并在同一行中指定类。此方法取代了旧的 comp-class
和 comp-name
配置样式。
例如,其过去是这样
--comp-name-1 = socks5
--comp-class-1 = tigase.socks5.Socks5Component
--comp-name-2 = stun
--comp-class-2 = tigase.stun.StunComponent
现在是
socks5 (class: tigase.socks5.Socks5Component) {}
stun (class: tigase.stun.StunComponent) {}
事实上,如果你使用一个组件的默认类和名称,你也不需要指定它,所以这里的MUC现在被如下调用
socks5 () {}
默认值: 默认情况下,组件配置默认运行,无需指定。
每个组件下有很多很多配置选项,具体在 组件文档 中指定。
13.1.6. 端口
ports属性是连接的子类,用于为连接管理器设置端口列表。 ‘list of ports’是一个逗号分隔的端口号列表。例如,对于名为s2s的服务器到服务器连接管理器,该属性类似于以下示例:
s2s {
connections {
ports = [ 5290, 5291 ]
}
}
每个端口都可以在端口下单独配置
s2s {
connections {
ports = [ 5290, 5291 ]
5291 {
type = 'accept'
}
}
}
这替换了 --cmpname-ports
属性。
从以下版本可用: 8.0.0
13.1.7. 配置类型
说明: 该属性设置服务器类型,决定启动哪些组件,且无需声明和配置所有组件。下面列出了可能的值:
setup
- 此设置将设置一个基本服务器,为解包后的初始设置做好准备。这是默认设置,会启动 http 组件以及基本的服务器组件。这应该在配置服务器后更改。default
- 创建默认配置文件。这是典型安装最可能需要的配置。配置中包含的组件有:会话管理器、客户端到服务器连接管理器和服务器到服务器连接管理器。session-manager
- 例如仅使用会话管理器和外部组件创建配置。这对于分布式安装很有用,您希望将会话管理器安装在不同的机器上,而组件管理不同机器(一台或多台)上的网络连接。配置中包含的组件有:sm 和 ext2s。connection-managers
- 例如使用管理网络连接的组件创建配置。这对于分布式安装很有用,您希望将会话管理器安装在不同的机器上,而组件管理不同机器(一台或多台)上的网络连接。配置中包含的组件有:c2s,s2s,ext2s。component
- 生成只有一个组件的配置 - 组件管理外部组件连接,XEP-0114 或 XEP-0225。这用于将Tigase实例部署为连接到主服务器的外部组件。您必须添加更多由该实例处理的组件,通常是MUC,PubSub 或任何其他自定义组件。你必须配置外部组件连接,域名,密码,端口等…
默认值: 'config-type' = 'setup'
可能的值: setup
|default
|connection-managers
|session-manager
|connection-managers
|component
从以下版本开始可用: 2.0.0
13.1.8. 调试包
默认值: 没有默认值,因为 Tigase 不希望自定义类开箱即用。
示例: 'debug-packages' = [ 'com.company.CustomPlugin' , 'com.company.custom' ]
可能的值: Java包或类的逗号分隔列表。
描述: 此属性用于为不在默认 Tigase 包中的任何包打开调试。确保类案例是正确的。
从以下版本可用: 5.0.0
13.1.9. 调试
描述: debug
属性用于打开指定 Tigase 包的调试日志。例如,如果你想为 tigase.server 包打开调试日志,那么你必须使用 server 参数。如果您的服务器有任何问题,从 Tigase 团队获得帮助的最佳方式是生成至少启用此功能的配置并运行服务器。然后从 logs/tigase-console.log
日志文件中,可以为我们提供最好的信息来提供帮助。有关服务器日志记录和调整日志记录级别的更多详细信息,请参阅管理员指南中的调试 Tigase 文章。如果您希望调试未使用 Tigase 编译的包,请使用 调试包 设置。
默认值: ‘none’
示例: debug = [ 'server', 'xmpp.impl' ]
可能的值: Tigase包名称的逗号分隔列表。
从以下版本开始可用: 2.0.0
13.1.10. 监控
描述: 此属性通过选定 TCP/IP 端口号上的选定协议激活监视接口。有关详细信息,请参阅用户指南中的 监控指南。每个监控协议都应该在 monitoring ()
下的它自己的子 bean 中调用。如果未指定协议,则无法进行该协议下的监控。
默认值: 默认情况下禁用监控。
例子:
monitoring () {
http () {
port = '9080'
}
jmx () {
port = '9050'
}
snmp () {
port = '9060'
}
}
警告
不要将监控与监控组件混淆。
可能的值:’list of monitoring protocols with port numbers.’
从以下版本可用: 8.0.0
13.1.11. 插件
描述: 以前的 --sm-plugins
属性已被新的 DSL 格式化样式所取代。以前一长串不间断的优点和缺点已被分隔的风格所取代。受会话管理器控制的插件现在将是 'sess-man'
bean 的子项。例如,要打开个人事件协议,可以使用以下内容:
'sess-man' () {
pep ()
}
如果任何插件需要配置,这些配置将在它自己的括号下。例如,此部分不仅打开了 jabber:iq:auth,而且还将线程数设置为 16。
'sess-man' () {
'jabber:iq:auth' () {
threadsNo = 16
}
}
您可能已经注意到,需要转义字符(例如 :
或 -
)的 bean 或配置选项将落入单引号以包含任何特殊字符。如果 bean 名称中没有特殊字符,则不需要单引号。如果你需要禁用某些插件,你可以在声明 bean 之后这样做。
'sess-man' () {
pep (active: false) {}
}
通常,如果调用 bean,它会自动激活。会话管理器插件通常看起来像一个没有配置的插件列表。示例部分将显示其会是什么样子。
默认值: ‘none’
例子:
'sess-man' () {
'version' () {}
amp () {}
'basic-filter' () {}
'domain-filter' () {}
'http:' {
{
'jabber.org' {
protocol {
commands () {}
stats () {}
}
}
}
}
'jabber:iq:auth' () {
threadsNo = 16
}
'jabber:iq:privacy' () {}
'jabber:iq:private' () {}
'jabber:iq:register' () {}
'jabber:iq:roster' () {}
'message-archive-xep-0136' () {}
msgoffline (active: false) {}
pep () {}
'presence-state' () {}
'presence-subscription' () {}
starttls () {}
'urn:ietf:params:xml:ns:xmpp-bind' () {}
'urn:ietf:params:xml:ns:xmpp-sasl' () {}
'urn:ietf:params:xml:ns:xmpp-session' () {}
'urn:xmpp:ping' () {}
'vcard-temp' () {}
zlib () {}
}
可能的值: DSL格式插件列表和配置。
从以下版本可用: 8.0.0
13.1.12. 优先队列实现
默认值: tigase.util.PriorityQueueRelaxed
例子: 'priority-queue-implementation' = 'tigase.util.PriorityQueueStrict
可能的值: 类名扩展 tigase.util.PriorityQueueAbstract
。
描述: priority-queue-implementation
属性设置 Tigase 的内部队列实现。您可以在已经可用和准备使用之间进行选择,或者您可以创建自己的队列实现并让 Tigase 加载它而不用默认设置。目前有以下队列实现可用:
tigase.util.workqueue.PriorityQueueRelaxed - 专门的优先级队列,旨在有效处理非常高的负载并防止更高优先级队列的数据包丢失。这意味着有时候,在系统过载的情况下,数据包有可能会在被丢弃的情况下乱序到达。在非常高的负载下,优先级最低的数据包(存在)通常会发生数据包丢失(丢弃)。
tigase.util.workqueue.PriorityQueueStrict - 专门的优先级队列,旨在有效处理非常高的负载,但更喜欢丢失包而不是包重新排序。它适用于负载非常高的系统,其中数据包顺序对系统正常运行至关重要。这意味着具有相同源和目标地址的相同优先级的数据包永远不会重新排序。数据包丢失(丢弃)通常会以相同的概率发生在所有数据包上,具体将取决于哪个优先级队列过载。
tigase.util.workqueue.NonpriorityQueue - 专门的非优先级队列。所有数据包都存储在一个物理集合中,因此它们永远不会重新排序。数据包没有优先级,因此系统关键数据包可能必须等待低优先级数据包被处理。在许多情况下,这可能会影响服务器的功能和性能。因此,应该非常谨慎地选择这种队列类型。相同类型的数据包永远不会重新排序。对于不适合单个队列的所有数据包,通常会发生数据包丢失(丢弃)。
备注
由于数据包由 SessionManager 组件中的插件处理,并且每个插件都有自己的线程池和自己的队列,无论您设置什么队列类型,都可能发生数据包重新排序。重新排序可能只发生在不同的数据包类型之间。也就是说’message’可能会接管’iq’数据包或’iq’数据包可能会接管’presence’数据包等等… 这是不可预测的。
从以下版本开始可用: 5.1.0
13.1.13. 名册实现
默认值: RosterFlat.class.getCanonicalName()
示例: 'roster-implementation' = 'my.pack.CustomRosterImpl'
可能的值: 扩展 tigase.xmpp.impl.roster.RosterAbstract 的类。
描述: roster-implementation
属性允许您指定不同的 RosterAbstract 实现。这可能对自定义名册存储,扩展名册内容或在某些情况下对于某些名册元素的某些自定义逻辑很有用。
从以下版本可用: 5.2.0
13.1.14. s2s-secret
默认值: 无
例子:
'vhost-man' {
defaults {
's2s-secret' = 'some-s2s-secret'
}
}
可能的值:’ascii 字符串。’
描述: 此属性是s2s机密的全局设置,用于在 Tigase 安装上生成回拨密钥。默认为null,表示每次s2s连接和握手都会自动生成secret。
这是一个全局属性,被特定 VHost 的设置覆盖(请参阅 添加和管理域 (VHosts))。
如提供的示例中所示,未定义配置的所有虚拟主机的’defaults’设置。此设置主要适用于init.property文件中列出的许多虚拟主机的安装,这些主机没有指定单独的设置。它允许为所有这些配置默认值,而不必为每个虚拟主机提供单独的配置。
从以下版本可用: 5.2.0
13.1.15. 脚本目录
默认值: scripts/admin
例子: 'scripts-dir' = ''/opt/admin-scripts'
可能的值: 文件系统上目录的路径。
描述: 此属性设置存储临时命令的所有管理员脚本的目录。
从以下版本可用: 4.3.0
13.1.16. ssl 容器类
默认值: tigase.io.SSLContextContainer
例子: rootSslContextContainer (class: class.implementing.SSLContextContainerIFC) {}
可能的值: 实现 tigase.io.SSLContectContainerIfc 的类。
描述: rootSslContextContainer
属性允许您指定一个实现 SSL/TLS 证书存储的类。本描述示例中提供的类允许从 PEM 文件加载证书,这是许多系统上使用的通用存储。
从以下版本可用: 5.0.0
13.1.17. 统计数据
数据块包含统计信息收集的设置。要开始统计数据块,请使用以下命令:
stats {}
默认值:’By default, stats is not listed in the config.tdsl
file’
描述
Tigase XMPP Server 可以在给定时间段内其内部存储服务器的统计信息。这允许您连接到正在运行的系统并收集所有服务器指标以及存储在服务器上的历史数据。当您的生产系统上发生某些事情时,这非常有用,您可以连接并查看这究竟是什么时候发生的,以及其这次周围的其他指标。请注意,Tigase XMPP 服务器会生成大约 1,000 个不同的系统指标。因此缓存大量统计数据集需要大量内存。
统计历史大小
Stats-history 定义了历史缓冲区的大小。这就是要存储在内存中的完整历史指标集的数量。
stats {
'stats-history-size' = '2160'
}
统计历史间隔
设置从服务器收集统计信息的时间间隔。
stats {
'stats-history-interval' = '10'
}
统计记录器
允许启用和配置负责存储统计信息的组件。请注意,这控制了使用 JMX,客户端或 ad-hoc 命令检索的日志记录系统。
stats {
'stats-logger' (class: value) {
<other settings>
}
}
目前提供以下类:
tigase.stats.CounterDataArchivizer
- 每次执行都会将当前的基本服务器指标(CPU 使用率,内存使用率,用户连接数,正常运行时间)放入数据库(覆盖先前的条目)tigase.stats.CounterDataLogger
- 每次执行都会在数据库中插入新的行,其中包含一组新的服务器统计信息(CPU使用率,内存使用率,每个连接器的用户连接数,已处理的不同类型的数据包数,正常运行时间等)tigase.stats.CounterDataFileLogger
- 每次执行都将所有服务器统计信息存储到单独的文件中。
频率
统计记录器也可以使用频率来控制,频率是归档器 .execute()
方法执行之间的时间间隔,以秒为单位。
stats {
'stats-logger' (class: tigase.stats.CounterDataLogger) {
repository() {
'default'() {
'data-source' = 'default';
}
}
frequency = '60'
}
}
统计文件记录器
这允许将统计信息收集配置到外部文件。这只有一个类,并且可以独立于内部统计来控制。
stats {
'stats-file-logger' (class: tigase.stats.CounterDataFileLogger) {
<other settings>
}
}
频率
统计文件记录器也可以使用频率来控制,频率是归档器 .execute()
方法执行之间的时间间隔,以秒为单位。
stats {
'stats-file-logger' (class: tigase.stats.CounterDataFileLogger) {
frequency = '60'
}
}
文件配置
您可以使用以下设置选项自定义统计文件记录器的文件输出,这些都是可选的。
stats {
'stats-history-size' = '2160'
'stats-update-interval' = '10'
'stats-file-logger' (class: tigase.stats.CounterDataFileLogger) {
frequency = '60'
'stats-datetime' = 'true'
'stats-datetime-format' = 'HH:mm:ss'
'stats-directory' = 'logs/server_statistics'
'stats-filename' = 'stat'
'stats-level' = 'FINEST'
'stats-unixtime' = 'false'
‘stats-datetime’ - 是否包含日期和时间戳。
‘stats-datetime-format’ - 指定日期时间戳的格式。
‘stats-directory’ - 应该保存统计文件的目录。
‘stats-filename’ - 命名输出统计文件的文件名前缀。
‘stats-level’ - 设置要收集的统计信息的级别。
‘stats-unixtime’ - 控制时间戳的格式以使用java DateFormat模式。
其相应配置:文件应该保存到的目录,文件名前缀,文件名中是否包含unix时间戳,是否包含日期时间戳,时间戳控制格式(使用java DateFormat模式)以及设置我们要保存的统计信息的级别(使用java Logger.Level)
13.1.18. 数据库记录器
这允许配置收集到数据库的统计信息。无需额外配置 default
数据源其将被使用,但可以在任何数据库中存储统计信息 - 只需定义新数据源并使用其名称配置记录器。
注意
启用组件后,应通过从Tigase主目录执行
./scripts/tigase.sh upgrade-schema etc/tigase.conf
来加载它的数据库架构
stats {
'stats-logger' (class: tigase.stats.CounterDataLogger) {
repository() {
'default'() {
'data-source' = 'customDataSourceName';
}
}
frequency = '60'
}
}
13.1.19. 示例配置块
stats {
'stats-history-size' = '2160'
'stats-update-interval' = '10'
'stats-file-logger' (class: tigase.stats.CounterDataFileLogger) {
frequency = '120'
'stats-datetime' = 'false'
'stats-datetime-format' = 'HH:mm:ss'
'stats-directory' = 'logs/statistics'
'stats-filename' = 'output'
'stats-level' = 'WARNING'
'stats-unixtime' = 'true'
}
'stats-logger' (class: tigase.stats.CounterDataLogger) {
repository() {
'default'() {
'data-source' = 'default';
}
}
frequency = '60'
}
}
从以下版本可用: 8.0.0
13.1.20. 流错误计数器
描述: 将流错误计数器添加到您希望计算流错误数的用逗号分隔的组件处理器。如果不启用此功能,统计信息将返回 0。此设置为c2s和ws2s打开流错误计数器:
c2s {
'stream-error-counter' () {
active = true
}
}
ws2s {
'stream-error-counter' () {
active = true
}
}
如果您希望通过设置 active = false
来关闭流错误计数器,也是可以的。
默认值: 流错误计数器默认不开启,因此没有设置默认值。
例子:
<component> {
'stream-error-counter' () {
active = true
}
从以下版本开始可用: 7.1.0
13.1.21. stringprep-processor
描述: 'stringprep-processor'
属性为Tigase处理的所有JID设置stringprep处理器。默认的 ‘simple’实现使用正则表达式来解析和检查用户JID。虽然它不满足RFC-3920的要求,但它对服务器CPU的压力也小得多,因此对性能的影响非常小。
其他可能的值是:
'libidn'
- 完全按照RFC-3920中的描述提供完整的stringprep处理。它需要大量的CPU功率并显著影响性能。
'empty'
- 对JIDs没有任何作用。 JIDs以收到的形式被接受。对性能没有影响,不使用任何CPU。这适用于通过某种算法生成JID的自动化系统,因此不正确的JID不可能进入系统。
默认值: simple
** 示例:** 'stringprep-processor' = 'libidn'
可能的值: simple|libidn|empty
从以下版本可用: 8.0.0
13.1.22. 测试
默认值: 默认测试模式被禁用。
描述: 此属性将服务器设置为测试模式,这意味着所有日志记录已关闭,离线消息存储已关闭,并且可能正在对系统配置进行一些其他更改。
这种模式背后的想法是测试Tigase XMPP服务器,同时将硬盘,数据库等环境对性能的影响降到最低…..
测试功能已被以下设置取代:
logging {
rootLevel = 'WARNING'
}
从以下版本可用: 8.0.0
13.1.23. tls-jdk-nss-bug-workaround-active
默认值: false
示例: 'tls-jdk-nss-bug-workaround-active' = true
可能的值: true|false
描述: 这是新JDK7中TLS/SSL错误的解决方法,使用本机库生成密钥和与新版本nss库一起使用的连接加密。
这导致在安装了JDK7和新库的系统上安装Tigase时出现许多问题,例如连接挂起或SSL/TLS损坏。我们之前的建议是避免使用JDK7或有问题的本机库。现在我们有了一个适当的修复/解决方法,它允许您使用JDK7运行Tigase。
请注意,虽然仍支持此设置,但上述问题已在v8 JDK中修复。
从以下版本可用: 8.0.0
13.1.24. trusted
默认值: 无
例子: trusted = [ 'user@domain.com' , 'user-2@domain2.com' ]
可能的值: 逗号分隔的用户裸JID列表。
描述: trusted
属性允许用户指定被认为是受信任的帐户列表,从而可以在服务器上执行某些特定操作。他们可以执行一些命令,发送广播消息,设置MOTD等等。配置和 admins 设置类似。
从以下版本可用: 8.0.0
13.2. 存储库
描述: 容器指定身份验证存储库。这个容器替换了旧的 auth-db
属性类型,并且可能包含一些其他的配置值。
默认值:
authRepository {
<configuration>
}
这是 authRepository 的基本设置,其中 <configuration> 设置对于所有身份验证数据库都是全局的。但是,您可以单独配置多个数据库。
例子:
authRepository {
'auth-repo-pool-size' = 50
domain1.com () {
cls = 'tigase.db.jdbc.JDBCRepository'
'data-source' = 'domain1'
}
domain2.com () {
cls = 'tigase.db.jdbc.JDBCRepository'
'data-source' = 'domain2'
'auth-repo-pool-size' = 30
}
}
13.2.1. 配置值:
容器有以下选项
池大小
此属性设置关联的 UserRepository
的数据库连接池大小。
注意
在某些情况下,如果
userRepository
中未定义池大小,则使用 data-repo-pool-size 的属性设置而不是默认值。这取决于存储库实现及其初始化方式。
authRepository {
default ()
'pool-size' = 10
}
这是一个全局属性,可能会被单独的存储库设置覆盖:
userRepository {
default () {
'pool-size' = 10
}
special-repo () {
'pool-size' = 30
}
}
cls
除非指定,否则池类将使用Tigase中包含的类。您可以以相同的方式配置各个存储库。这取代了以前的 --auth-repo-pool
属性。
备注
文件转换不会删除和转换此属性,它 必须手动完成。
从以下版本可用: 8.0.0
13.2.2. authRepository
描述: 容器指定存储库URIs。此容器替换了旧的 auth-db-uri
和 user-db-uri
属性类型.
默认值:
dataSource {
default () {
uri = 'jdbc:mysql://localhost/tigasedb?user=tigase&password=tigase12'
}
设置好配置后,您将在此处看到用户数据库的uri。如果需要定义其他数据库,它们将列在同一个dataSource bean中。
例子:
dataSource {
default () {
uri = 'jdbc:mysql://localhost/tigasedb?user=tigase&password=tigase12'
}
'default-auth' () {
uri = 'jdbc:mysql://localhost/tigasedbath?user=tigase&password=tigase12'
}
}
可能的值: 数据库URI的自定义名称的细分列表。每个名称都必须有一个已定义的uri属性。 数据库名称可以通过bean名称自定义。
备注
URI名称可以用作在其他容器中定义数据库位置URI的简写,因此请确保将它们命名为唯一。
备注
default () URI 设置替换了 user-db-uri
以及 auth-repo-uri
属性。
13.2.3. MSSQL
MSSql 支持开箱即用,但是Tigase为数据库提供了一个开源驱动程序。我们建议使用Microsoft自己的驱动程序以获得更好的功能。
dataSource () {
default () {
uri = 'jdbc:sqlserver://localhost;databaseName=tigasedb;user=tigase_user;password=tigase_pass;schema=dbo;lastUpdateCount=false;cacheMetaData=false'
}
}
其中uri划分如下: jdbc:<driver>:sqlserver://<server address>;databaseName=<database name>;user=<username for db>;password=<password for db>;schema=dbo;lastUpdateCount=false;cacheMetaData=false 除非您在更改中明确表示,否则我们不建议现在及以后修改架构。
13.2.4. MongoDb
对于使用mongoDB作为存储库,设置看起来会略有不同:
dataSource () {
default () {
uri = 'mongodb://username:password@localhost/dbname'
}
}
13.2.5. MySQL
MySQL支持开箱即用,但是Tigase使用准备好的调用来调用程序访问存储在数据库中的数据。虽然这工作得非常快,但在Tigase XMPP服务器启动期间准备这些准备好的调用需要时间。从版本 8.2.0 开始,可以启用变通方法,强制Tigase XMPP服务器使用准备好的语句而不是准备好的调用,这将缩短启动时间,但可能会对执行查询期间的性能产生轻微影响,并且如果数据库中的存储过程和函数存在并且具有正确的参数类型,则会禁用启动验证检查。要启用此模式,您需要将 useCallableMysqlWorkaround
设置为 true
。
dataSource {
default () {
uri = 'jdbc:mysql://localhost/tigasedb?user=tigase&password=tigase12'
useCallableMysqlWorkaround = 'true'
}
}
13.2.6. 池大小
DataSource` 是任何更高级别的数据访问存储库(例如 userRepository
或 authRepository
)和更具体的SQL数据库或JDBC驱动程序之间的抽象层。许多实现使用 DataSource
进行数据库连接,事实上,在许多安装中,如果它们连接到同一个数据库,它们也共享同一个DataRepository实例。在这种情况下,希望在此级别上使用特定的连接池,以避免与数据库的连接数量过多。
为此,请将数据库连接数指定为整数:
dataSource {
default () {
uri = 'jdbc:mysql://localhost/tigasedb?user=tigase&password=tigase12'
'pool-size' = '50'
}
}
默认情况下,连接数为 10。
从以下版本可用: 8.0.0
13.3. 集群
13.3.1. cl-comp
描述: 容器指定集群组件配置。
默认值: 默认情况下, cl-comp 容器未列在 config.tdsl
文件中。
例子:
'cl-comp' {
<configuration>
}
connect-all
cluster-connect-all
属性用于打开在 cluster-nodes 配置属性中列出的所有节点的活动连接。此属性应仅在稍后添加到活动集群的节点上使用。通常,这个新的集群节点不会在现有集群节点的配置中列出。这就是为什么他们无法打开新节点的连接。新节点改为打开与所有现有节点的连接。 False 是默认值,如果你想关闭它,你可以跳过这个选项,它是默认的。
示例
'cl-comp' {
'connect-all' = true
}
这替换了 --cluster-connect-all
属性。
从以下版本可用: 8.0.0
13.3.2. cluster-mode
描述: 该属性用于打开启集群模式。默认值为 false
,因此如果您不希望服务器在集群模式下运行,通常可以跳过该参数。即使只有一个节点在运行,您也可以在集群模式下运行服务器。性能影响微不足道,您将有机会随时连接模式集群节点而无需重新启动服务器。
默认值: false
Tigase 默认不在集群模式下运行。
示例: 'cluster-mode' = 'true'
可能的值: true|false
从以下版本可用: 8.0.0
13.3.3. 集群节点
默认值: 无
示例: 'cluster-nodes' = [ 'node1.domain:pass:port' , 'node2.domain:pass:port' , 'node3.domain:pass:port' ]
可能的值: 以逗号分隔的主机名列表。
描述: 该属性用于指定在您的安装上运行的集群节点列表。节点是运行该节点的机器的完整DNS名称。请注意,正确的DNS配置对于集群正常工作至关重要。确保 ‘hostname’ 命令在每个集群节点上返回完整的DNS名称。尽管良好的网络连接性也是有效集群性能的关键要素,但节点不必位于同一网络中。
所有集群节点必须相互连接,以保持用户会话同步并在连接到不同节点的用户之间交换数据包。因此,每个集群节点都会打开一个 ‘cluster port’,在该端口上它正在侦听来自不同集群节点的连接。由于每两个节点之间只有一个连接,因此Tigase服务器必须决定连接到哪些节点以及哪些节点必须接受连接。如果您将相同的集群节点列表放入所有节点的配置中,这不是问题。 Tigase服务器有一种方法可以找到并取消发现的任何冲突。但是,如果您稍后想添加一个新节点,而不是重新启动和更改旧节点上的配置,那么旧节点将无法尝试与他们不认识的新节点建立连接。为了解决这种特殊情况,使用了下一个参数。
备注
不需要配置集群节点,因为它们可以自动查找/添加/删除集群节点。这适用于节点受限且静态的安装!
从以下版本可用: 8.0.0
13.4. 用户连接
13.4.1. bosh-close-connection
默认值: false
示例: 'bosh-close-connection' = true
可能的值: true|false
描述: 此属性全局禁用Bosh对Tigase服务器的保持活动支持。每次将数据发送到Bosh客户端时,它都会导致Bosh连接管理器强制关闭HTTP连接。要继续通信,客户端必须打开一个新的HTTP连接。
此设置很少需要,但在客户端无法控制/禁用保持活动Bosh连接的安装中,由于某种原因,keep-alive 无法正常工作。
从以下版本可用: 8.0.0
13.4.2. bosh-extra-headers-file
默认值: 'etc/bosh-extra-headers.txt'
示例: 'bosh-extra-headers-file' = ''/path/to/file.txt'
可能的值: ‘path to a file on the filesystem.’
描述: 此属性允许您指定带有附加HTTP标头的文本文件的路径,这些标头将随每个请求一起发送到Bosh客户端。这为在某些对HTTP标头和一些附加设置有特殊要求的系统上运行的Bosh客户端提供了一些额外的灵活性。
默认情况下,随安装分发的文件包含以下内容:
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type
Access-Control-Max-Age: 86400
这可以在您的安装中修改,删除或替换为不同的内容。
从以下版本可用: 8.0.0
13.4.3. client-access-policy-file
默认值: etc/client-access-policy.xml
示例: 'client-access-policy-file' = ''/path/to/access-policy-file.xml'
可能的值: 文件系统上文件的路径。
描述: client-access-policy-file
属性允许控制基于Silverlight的Web应用程序的跨域访问策略。跨域策略通过包含策略和规则的XML文件进行控制。
默认情况下,Tigase与一个示例策略文件一起分发,该文件允许从所有来源完全访问整个安装。对于大多数Bosh服务器安装来说,这通常是可以的。通过属性和XML文件进行的配置允许在任何安装上轻松灵活地修改策略。
从以下版本可用: 5.2.0
13.4.4. client-port-delay-listening
描述: 该属性允许 在集群模式下 启用或禁用延迟监听客户端连接 ,直到集群正确连接。
默认值: true
例子:
<component> {
'port-delay-listening' = false
}
可能的值: true
, false
在集群模式下,为了确保正确的用户状态广播,我们延迟打开客户端端口(组件:c2s
,ws2s
,bosh
),并且仅在集群完全正确连接后启用(即要么只有单个节点,要么在多个节点的情况下所有节点都正确连接)。
可以使用以下配置在每个组件的基础上启用/禁用此功能:
bosh {
'port-delay-listening' = true
}
c2s {
'port-delay-listening' = true
}
ws2s {
'port-delay-listening' = true
}
最大延迟时间取决于组件,它是 ConnectionManager
默认连接延迟时间和 30s
的乘积 - 在客户端连接管理器的情况下,此延迟等于 60s。
备注
仅当 集群模式 处于活动状态时才适用!
从以下版本开始可用: 7.1.0
13.4.5. cross-domain-policy-file
默认值: etc/cross-domain-policy.xml
示例: 'cross-domain-policy-file' = ''/path/to/cross-domain-policy.xml'
可能的值: 文件系统上文件的路径。
描述: 此属性允许您为基于闪存的客户端设置具有跨域访问策略的文件的路径。这是一个标准XML文件,根据请求发送到Flash客户端。
随着Tigase安装分发的默认文件允许所有人完全访问。这对于大多数用例来说已经足够了,但可以通过简单地编辑文件来更改它。
这是一个全局属性,也可以通过配置连接管理器 [c2s,s2s,ws2s,bosh,ext 等] 来覆盖,它们可能都有自己的策略。
c2s {
'cross-domain-policy-file' = '/path/to/cross-domain-policy.xml'
}
从以下版本开始可用: 5.1.0
13.4.6. domain-filter-policy
默认值: ALL
示例: domain-filter-policy' = 'LOCAL
可能的值: ALL|LOCAL|OWN|BLOCK|LIST=domain1;domain2|BLACKLIST=domain1;domain2
描述: domain-filter-policy
属性是用于设置虚拟主机通信过滤的全局设置。此功能是可以在单个用户级别上设置的相同属性的一种扩展。然而,在许多情况下,希望不是在每个用户级别上而是在域级别上控制用户通信。域过滤(通信过滤)允许您指定特定域的用户可以与谁通信。它可以限制选定域或整个安装的通信。默认值 ALL
使域的用户(默认情况下所有域)能够与任何其他域上的任何用户进行通信。其他可能的值是:
ALL
允许用户与任何其他域上的任何人(包括外部服务器)进行通信的默认值。LOCAL
允许用户与任何域上相同安装的所有用户进行通信。它只阻止与外部服务器的通信。OWN
允许用户与同一域中的所有其他用户进行通信。此外,它还允许用户与 muc.domain,pubsub.domain 等子域进行通信…BLOCK
此值完全阻止域或用户与其他任何人的通信。这可以用作暂时禁用帐户或域的一种手段。LIST
属性允许设置域中的用户可以与之通信的域列表(用户的JID)(即 白名单)。BLACKLIST
- 用户可以与所有人(如ALL
)通信,除了列出域上的联系人。
这是一个全局属性,被特定 VHost 的设置覆盖(请参阅 添加和管理域 (VHosts))。
未定义配置的所有虚拟主机的默认设置。此设置主要用于具有许多在 init.property 文件中列出的虚拟主机的安装,这些主机没有指定单独的设置。它允许所有服务器的默认值,而不必为每个虚拟主机提供单独的配置。
ALL
也可以作为在运行时添加的所有新虚拟主机的默认值。
从以下版本可用: 5.2.0
13.4.7. see-other-host
–cmSeeOtherHost已被替换为使用 seeOtherHost
设置,并且可以为每个连接管理器(c2s,s2s 等…)配置。
默认值: tigase.server.xmppclient.SeeOtherHostHashed
例子:
<connectionManager> {
seeOtherHost (class: value) { }
}
可能的值:’none’或实现’SeeOtherHostIfc’的类。
描述: 允许您通过指定SeeOtherHostIfc实现来指定加载平衡机制。关于功能和实现细节的更多细节可以在Tigase加载平衡文档中找到。
从以下版本可用: 8.0.0
13.4.8. 监视器超时
默认值: 1740000
示例: watchdog_timeout=60000
可能的值: any integer
。
描述: watchdog_timeout
属性允许微调ConnectionManager监视器(这是负责检测断开连接并关闭它们的服务)。超时属性与时间长短(以毫秒为单位)有关,之后,在给定连接上缺乏响应/活动将认为这种连接断开并关闭它。除了上面介绍的全局配置之外,每个组件的配置来实现也是可能的:
<ConnectionManager> {
watchdog_timeout = 60000L
}
例如(对于 C2SConnectionManager):
c2s {
watchdog_timeout = 150000L
}
所有相关的配置选项:
监视器超时
从以下版本可用: 8.0.0
13.4.9. 监视器延迟
默认值: 600000
示例: watchdog_delay = '30000'
可能的值: any integer
描述: watchdog_delay
配置属性允许在ConnectionManager监视器(负责检测断开连接并关闭它们的服务)将用于验证连接的后续检查之间配置延迟(以毫秒为单位)。除了上面介绍的全局配置之外,每个组件的配置也是可能的:
<ConnectionManager> {
watchdog_delay = 60000L
}
例如(对于 ClusterConnectionManager):
'cl-comp' {
watchdog_delay = 150000L
}
所有相关的配置选项:
监视器延迟
从以下版本可用: 8.0.0
13.4.10. 监视器ping类型
默认值: whitespace
示例: watchdog_ping_type = 'XMPP'
可能值: WHITESPACE
,XMPP
描述: watchdog_ping_type
配置属性允许配置ConnectionManager监视器(此服务负责检测断开连接并关闭它们)将用于检查连接的ping的类型。除了上面介绍的全局配置之外,每个组件的配置也是可能的:
<ConnectionManager> {
watchdog_ping_type = 'XMPP'
}
例如(对于 ClusterConnectionManager):
cl-comp {
watchdog_ping_type = 'WHITESPACE'
}
所有相关的配置选项:
监视器ping类型
监视器超时
从以下版本可用: 8.0.0
13.4.11. ws-allow-unmasked-frames
默认值: false
示例: 'ws-allow-unmasked-frames' = true
可能的值: true|false
描述: RFC 6455指定所有客户端必须屏蔽它通过Websocket连接发送到服务器的帧。如果发送了未屏蔽的帧,无论任何加密,服务器都必须关闭连接。但是,某些客户端可能不支持屏蔽帧,或者您可能希望绕过此安全措施以用于开发目的。此设置启用true时,将允许通过websocket连接到服务器,并且可以在Tigase关闭该连接的情况下运行。
从以下版本可用: 8.0.0
13.5. 外部
13.5.1. bind-ext-hostnames
默认值: 无
示例: 'bind-ext-hostnames' = [ 'pubsub.host.domain' ]
可能的值: 逗号分隔的域列表。
描述: 此属性允许设置要绑定到外部组件连接的域列表。假设我们有一个仅加载了MUC和PubSub组件的Tigase实例,我们希望通过外部组件协议将此实例连接到主服务器。使用 –external property 我们可以定义一个域(可能是 muc.devel.tigase.org),密码,TCP/IP 端口,远程主机地址,连接类型等… 这使得我们的组件(MUC)在远程服务器上可见。
为了使第二个组件 (PubSub) 可见,我们需要为另一个组件打开另一个具有域名 (pubsub.devel.tigase.org) 的连接。当然,第二个连接是多余的,因为所有通信都可以通过单个连接进行。这就是这个属性的用途。在我们的带有2个组件的示例中,您可以将 ‘pubsub.devel.tigase.org’ 域作为该属性的值,它会将第二个域绑定到在协议握手期间已通过身份验证的域顶部的单个连接。
从以下版本可用: 5.0.0
13.5.2. default-virtual-host
描述: default-virtual-host
属性允许设置安装提供的默认虚拟主机的名称。它在应用程序启动期间加载并存储在数据库中。 它可能只包含一个域名!
任何额外的配置选项或额外的虚拟主机域都应该使用临时命令添加和配置,例如在 VHostManager
组件安装的JID (vhost-man@your-server-domain
) 中可用的命令 Add new item
, Update item configuration
和 Remove an item
。
从以下版本可用: 8.0.0
13.5.3. ext
描述: 此属性定义外部组件连接的参数。
该组件的加载方式与所有其他Tigase组件相同。在您的 config.tdsl
文件中,您需要添加外部类:
ext (class: tigase.server.ext.ComponentProtocol) {}
这将加载具有空配置的组件,实际上是无用的。您必须告诉组件在哪个端口上侦听(或在哪个端口上连接)以及带有密码的外部域列表。
这些值需要在Tigase XMPP服务器运行时使用XMPP ad-hoc命令配置,例如 在您刚刚启用的外部组件(ext@your-server-domain
)可用的命令 Add new item
,Update item configuration
和 Remove an item
。
可能的值: 外部域参数列表。
从以下版本可用: 4.3.0
以下版本中删除: 8.0.0
13.6. 表现
13.6.1. cm-ht-traffic-throttling
默认值: xmpp:25k:0:disc,bin:200m:0:disc
示例: 'cm-ht-traffic-throttling' = 'xmpp:25k:0:disc,bin:200m:0:disc'
可能的值: 以逗号分隔的流量限制设置列表。
说明: 该属性用于指定非用户连接的流量限制,即s2s,外部组件等高流量服务器连接。编码的属性和值的含义与 cm-traffic-throttling property 的含义相同。
从以下版本可用: 8.0.0
13.6.2. cm-traffic-throttling
默认值: xmpp:2500:0:disc,bin:20m:0:disc
示例: 'cm-traffic-throttling' = 'xmpp:2500:0:disc,bin:20m:0:disc'
可能的值: 以逗号分隔的流量限制设置列表。
描述: cm-traffic-throttling
属性允许您限制用户连接上的流量。这些限制适用于每个用户连接,如果超出限制,则会应用指定的操作。
属性值是以逗号分隔的流量限制设置列表。例如第一部分:xmpp:2500:0:disc
将 XMPP 数据的流量限制指定为在最后一分钟内允许发送给用户或从用户接收的2,500个数据包,并且用户连接上的总流量不受限制(0),如果超过任何限制,则操作是 断开 用户。
[xmpp|bin] 流量类型,xmpp - XMPP 流量,即限制是指传输的XMPP数据包的数量,bin - 二进制流量,即限制是指传输的字节数。
2500 1 分钟内允许的最大流量。 0 表示无限或没有限制。
0 连接生命周期内允许的最大流量。 0 表示无限或没有限制。
[disc|drop] 超出限制时对连接执行的操作。 disc - 表示断开连接,drop - 表示丢弃数据。
从以下时间开始可用: 5.1.3
13.6.3. elements-number-limit
默认值: 1000
可能的值: 任何整数。
描述: elements-number-limit
配置属性允许配置拒绝服务保护机制,该机制限制在节中发送的元素数量。它必须基于每个ConnectionManager进行配置:
'<ConnectionManager>' {
'elements-number-limit' = ###
}
例如(对于 ClusterConnectionManager):
'cl-comp' {
'elements-number-limit' = 100000
从以下版本可用: 5.2.0
13.6.4. hardened-mode
默认值: secure
示例: 'hardened-mode' = secure
可能的值: relaxed|secure|strict
描述: 调整强化模式会影响Tigase中安全方面的处理。级别越高,规则越严格: * relaxed
- 使用已安装JVM的默认安全功能; * secure
- 禁用旧的 SSLv2 和 SSLv3,禁用弱密码; * strict
- 除了 secure
级别更改之外,它还禁用 TLSv1
和 TLSv1.1
以及不支持前向保密的密码。
在较旧的JVM版本上,它需要安装 UnlimitedJCEPolicyJDK。 OpenJDK8和高版本的OracleJVM 11以及更高版本不需要它。
从以下版本可用: 5.2.0
13.6.5. max-queue-size
默认值: 默认队列大小取决于RAM大小。
示例: 'max-queue-size' = 10000
可能的值: 整数。
描述: max-queue-size
属性将内部队列的最大大小设置为指定值。默认情况下,Tigase根据Tigase服务器进程的最大可用内存设置队列大小。对于分配给JVM的每100MB内存,它设置为1000。这对于大多数情况来说已经足够了。但是,如果您有一个非常繁忙的服务,其中Pubsub 或MUC组件生成大量数据包(存在或消息),则此大小应等于或大于组件在单个请求中生成的最大预期数据包数。否则Tigase可能会丢弃它无法处理的数据包。
从以下版本开始可用: 5.1.0
13.6.6. net-buff-high-throughput
默认值: 64k
示例: 'net-buff-high-throughput' = '256k'
可能的值: 网络缓冲区大小为整数。
描述: net-buff-high-throughput
属性为高流量连接(如 s2s)或集群节点之间的连接设置网络缓冲区。默认值为 64k
,最适合中等流量的网站。如果您的集群安装无法应对节点之间的流量,请尝试增加此数量。
从以下版本可用: 4.3.0
13.6.7. net-buff-standard
默认值: 2k
例子: 'net-buff-standard' = '16k'
可能的值: 网络缓冲区大小为整数。
描述: 此属性设置标准(通常是 c2s)连接的网络缓冲区,默认值为2k,最适合大多数安装。
从以下版本可用: 4.3.0
13.6.8. net-buffer
默认值: 2k
示例: 'net-buffer' = 16 * 1024
可能的值: 内部网络缓冲区大小为整数。
描述: 设置 ConnectionManager
在其设置的上下文中使用的内部网络缓冲区的默认大小。
从以下版本可用: 8.0.0
13.6.9. socket-buffer-size
默认值: 4k
(用于客户端到服务器的连接)和 64k
(用于服务器到服务器的连接)
示例: 'socket-buffer-size' = 16 * 1024
可能的值: 套接字网络缓冲区大小为整数。
描述: 设置 ConnectionManager
使用的套接字网络缓冲区的默认大小,用于设置它的上下文中的每个连接。
从以下版本开始可用: 8.3.0(之前使用了 net-buffer
的值)
13.6.10. nonpriority-queue
默认值: false
示例: 'nonpriority-queue' = true
可能的值: true|false
描述: nonpriority
属性可用于切换到Tigase服务器中的非优先队列使用(值设置为 ‘true’)。使用非优先队列可防止数据包重新排序。默认情况下,Tigase使用优先级队列,这意味着具有最高优先级的数据包可能会接管具有较低优先级的数据包(存在更新),这可能会导致数据包无序到达。
然而,这可能只发生在不同类型的数据包中。也就是说,消息可以接管存在数据包。但是,一条消息永远不会为同一用户接管另一条消息。因此,在大多数情况下,无序数据包传送不是问题。
从以下版本可用: 5.0.0
13.7. 虚拟主机/域
13.7.1. vhost-anonymous-enabled
默认值: true
示例: 'vhost-anonymous-enabled' = 'false'
可能的值: true|false
描述: vhost-anonymous-enabled
属性指定是否允许匿名用户登录所有虚拟主机的安装。
这是一个全局属性,被特定 VHost 的设置覆盖(请参阅 添加和管理域 (VHosts))。
如果未定义此属性,则使用所有虚拟主机的默认设置。此设置主要用于在 config.tdsl
文件中列出的许多虚拟主机的安装,这些主机没有指定单独的设置。它允许为所有这些配置默认值,而不必为每个VHost提供单独的配置。
从以下版本可用: 8.0.0
13.7.2. vhost-disable-dns-check
默认值: false
示例: 'vhost-disable-dns-check' = 'true'
可能的值: true|false
描述: 在Tigase服务器中添加或编辑虚拟主机时,此属性会禁用DNS验证。这也使管理帐户免于验证。启用此属性后,可查看是否设置了正确的 SRV 记录,以便其他人可以从您的网络外部连接到特定的虚拟主机, 但你不会从中受益。
这是一个全局属性,被特定 VHost 的设置覆盖(请参阅 添加和管理域 (VHosts))。
从以下版本可用: 8.0.0
13.7.3. vhost-max-users
默认值: 0
示例: 'vhost-max-users' = '1000'
可能的值: 整数。
描述: vhost-max-users
属性指定可以在所有虚拟主机的安装中注册多少用户帐户。
0 - zero 表示无限制,这是默认设置。否则大于零值指定帐号限制。
这是一个全局属性,被特定虚拟主机的设置覆盖。
默认设置用于未定义配置的所有虚拟主机。此设置对于在 init.property
文件中列出的没有指定单独设置的许多虚拟主机的安装最有用。它提供了对所有这些都使用默认值的能力,而不必为每个虚拟主机提供单独的配置。
这是一个全局属性,被特定 VHost 的设置覆盖(请参阅 添加和管理域 (VHosts))。
从以下版本可用: 8.0.0
13.7.4. vhost-message-forward-jid
默认值: <null>
示例: 'vhost-message-forward-jid' = 'archive@domain.com'
可能值: ‘valid JID’
描述: 这是安装的消息转发的全局属性。此属性通常在vhost配置级别上指定,但是如果您想转发安装中的所有消息并且您有许多虚拟域,则此属性允许为所有这些域设置消息转发。必须将有效的JID指定为转发目的地。此外,必须在安装时加载并激活消息转发插件才能使消息转发工作。
未设置配置时,将使用null值作为默认值。此设置对于在 init.property
文件中列出的没有指定单独设置的许多虚拟主机的安装非常有用。它提供了为所有这些配置默认值的能力,而不必为每个虚拟主机提供单独的配置。
它也被用作在运行时添加的所有新虚拟主机的默认值。
这是一个全局属性,被特定 VHost 的设置覆盖(请参阅 添加和管理域 (VHosts))。
从以下版本可用: 8.0.0
13.7.5. vhost-presence-forward-jid
默认值: <null>
示例: 'vhost-presence-forward-jid' = 'presence-collector@domain.com'
可能的值: 有效的 JID。
描述: 这是安装的状态转发功能的全局属性。所有用户状态都将被转发到给定的XMPP地址,该地址可以是一个组件或任何其他XMPP实体。如果目标实体是通过c2s连接的机器人,它可能应该通过完整的JID(带有资源部分)来解决,或者标准的XMPP状态处理将拒绝发送不在联系人列表中的用户的状态。
这是一个全局属性,被特定虚拟主机的设置覆盖。
未设置配置时,将使用null值作为默认值。此设置对于在 init.property
文件中列出的没有指定单独设置的许多虚拟主机的安装很有用。它可以为所有这些配置默认值,而不必为每个虚拟主机提供单独的配置。
它也被用作在运行时添加的所有新虚拟主机的默认值。
这可以在每个 VHost 上使用(请参阅 添加和管理域(VHosts))。
从以下版本可用: 8.0.0
13.7.6. vhost-register-enabled
默认值: true
示例: 'vhost-register-enabled' = false
可能的值: true|false
描述: vhost-register-enabled
是一个全局属性,允许您在安装时打开/关闭用户注册。将此属性设置为 false
不会禁用服务器上的注册插件。您可以在域配置设置中启用所选域的注册。
这是一个全局属性,被特定虚拟主机的设置覆盖。
当没有设置配置时,true
值用作默认值。此设置对于在 init.property
文件中列出的没有指定单独设置的许多虚拟主机的安装很有用。它允许管理员为所有这些配置默认值,而不必为每个虚拟主机提供单独的配置。
它也被用作在运行时添加的所有新虚拟主机的默认值。
这可以在每个 VHost 上使用(请参阅 添加和管理域(VHosts))。
从以下版本可用: 8.0.0
13.7.7. vhost-tls-required
默认值: false
示例: 'vhost-tls-required' = true
可能的值: true|false
描述: 此属性是在Tigase安装上打开/关闭TLS所需模式的全局设置。将此属性设置为 false
不会关闭TLS。 TLS在服务器上仍然可用,但作为一个选项,这是客户端决定是否使用加密。如果该属性设置为true,则服务器将不允许在 TLS 握手完成之前进行用户身份验证或发送任何其他用户数据。
这是一个全局属性,被特定虚拟主机的设置覆盖。
当没有设置配置时,false
值用作默认值。此设置对于在 init.property
文件中列出的没有指定单独设置的许多虚拟主机的安装很有用。它允许管理员为所有这些配置默认值,而不必为每个虚拟主机提供单独的配置。
它也被用作在运行时添加的所有新虚拟主机的默认值。
这可以在每个 VHost 上使用(请参阅 添加和管理域(VHosts))。
从以下版本可用: 8.0.0