Openfire使用上的一些技巧

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: Openfire使用上的一些技巧 1、把Openfire安装为系统服务 对于RedHat、CentOS、Fedora之类的系统,可以采用RPM包安装Openfire,安装后自然有了Openfire服务。

Openfire使用上的一些技巧

1、把Openfire安装为系统服务

对于RedHat、CentOS、Fedora之类的系统,可以采用RPM包安装Openfire,安装后自然有了Openfire服务。此时可以通过命令启动或停止Openfire:

# /etc/init.d/openfire stop/start/restart/reload 

如果是通过.tar.gz解压安装的Openfire,那么Openfire的启动或停止可以通过命令:

# ./bin/openfire start/stop 

这种方式下,要把Openfire安装为系统服务,在Openfire的bin/extra子目录下有两个脚本:

1)redhat-postinstall.sh脚本

适合RedHat系统,可以自动把Openfire安装为系统服务。它会创建一个名为“jive”的用户,并把openfired复制到init.d目录,且此脚本必须以root权限执行。

2)openfired脚本

把Openfire作为系统服务的脚本。必须手动配置此脚本。稍后详细介绍如何配置。

2、自定义参数

高级用户在运行Openfire时,可以传递一些参数给JVM,以获得更好的性能。
如果Openfire是通过RPM安装的,那么可以编辑/etc/sysconfig/openfire,找到OPENFIRE_OPTS选项进行调整。
如果是通过TAR解压安装的,那么需要自行调整启动脚本以满足所需。

3、插件

插件使得Openfire可以支持额外的功能和协议。在服务器安装Openfire后,可以下载并安装插件来增强Openfire服务器。插件可以从igniterealtime.org插件页面或直接在管理控制台下载。
插件网页:http://www.igniterealtime.org/projects/openfire/plugins.jsp

1)安装插件

如果是从服务器的管理控制台下载插件,那么插件会自动安装。
如果是手动下载的插件(jar文件),可以将此插件文件复制到Openfire的plugins子目录。Openfire的插件监视器会自动扫描到新插件并自动完成安装。Openfire的管理控制台有“上传插件”功能,可以从本地文件系统上传插件并自动完成加载。

2)管理插件

可以在Openfire的管理控制台进行管理。可以手动删除plugins子目录的插件JAR文件,Openfire会自动从内存中删除插件,并删除它的目录。

4、添加中文支持

在conf子目录编辑openfire.xml配置文件,在处添加以下内容:

?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8
即:
<driver>com.mysql.jdbc.Driver</driver>
      <serverURL>jdbc:mysql://111.111.111.11:3306/openfiredb?rewriteBatchedStatements=true?useUnicode=true&characterEncoding=UTF-8&characterSetResults=UTF-8</serverURL>
      <username encrypted="true">08d7675ce83b8f765d0eaasdfasasdf9d8943ad4f8edf</username>
      <password encrypted="true">d1e1f004f6c252e04ab0ae6d02beb14e471e6002e0bb621</password>
      <testSQL>select 1</testSQL> 

5、修改Openfire的Domain域值

与Tigase不同,Openfire安装后,它的配置属性不是写入XML文件中,而是基本上都存到数据库表里。
配置属性所在的数据表为ofProperty表

mysql> select * from ofProperty;
+--------------------------------------------+----------------------------------------------------------------------------------+
| name                                       | propValue                                                                        |
+--------------------------------------------+----------------------------------------------------------------------------------+
| adminConsole.port                          | 9090                                                                             |
| adminConsole.securePort                    | 9091                                                                             |
| connectionProvider.className               | org.jivesoftware.database.DefaultConnectionProvider                              |
| database.defaultProvider.connectionTimeout | 1.0                                                                              |
| database.defaultProvider.driver            | com.mysql.jdbc.Driver                                                            |
| database.defaultProvider.maxConnections    | 300                                                                              |
| database.defaultProvider.minConnections    | 10                                                                               |
| database.defaultProvider.password          | b10f78asdfasdda441f52345234425215eba110 |
| database.defaultProvider.serverURL         | jdbc:mysql://111.111.111.11:3306/openfiredb?rewriteBatchedStatements=true           |
| database.defaultProvider.testAfterUse      | false                                                                            |
| database.defaultProvider.testBeforeUse     | false                                                                            |
| database.defaultProvider.testSQL           | select 1                                                                         |
| database.defaultProvider.username          | df94csdfas5d71aefb9183asdfs80fbbb7                                 |
| locale                                     | zh_CN                                                                            |
| locale.timeZone                            | Asia/Taipei                                                                      |
| passwordKey                                | 0N5fddsanisYAnD                                                                  |
| provider.admin.className                   | org.jivesoftware.openfire.admin.DefaultAdminProvider                             |
| provider.auth.className                    | org.jivesoftware.openfire.auth.DefaultAuthProvider                               |
| provider.group.className                   | org.jivesoftware.openfire.group.DefaultGroupProvider                             |
| provider.lockout.className                 | org.jivesoftware.openfire.lockout.DefaultLockOutProvider                         |
| provider.securityAudit.className           | org.jivesoftware.openfire.security.DefaultSecurityAuditProvider                  |
| provider.user.className                    | org.jivesoftware.openfire.user.DefaultUserProvider                               |
| provider.vcard.className                   | org.jivesoftware.openfire.vcard.DefaultVCardProvider                             |
| setup                                      | true                                                                             |
| update.lastCheck                           | 1441615953135                                                                    |
| xmpp.auth.anonymous                        | true                                                                             |
| xmpp.domain                                | ubuntu                                                                           |
| xmpp.session.conflict-limit                | 0                                                                                |
| xmpp.socket.ssl.active                     | true                                                                             |
+--------------------------------------------+----------------------------------------------------------------------------------+
29 rows in set (0.00 sec) 

可见,domain域的配置见xmpp.domain这一行。
修改它的值即可。

mysql> update ofProperty set propValue='tt.com' where name='xmpp.domain'; 

但是要注意,要让修改后的domain域生效,需要重启Openfire服务器。

# cd /opt/openfire/
# ./bin/openfire restart
Shutting down openfire
Stopped.
Restarting openfire 

此时可以用XMPP客户端进行验证,OK!
但实际上,这一步还没真正完成。Openfire在修改Domain域值后,它相应的证书也就无效了,需要重新生成证书(哪怕是自签名的证书)。而生成自签名的证书步骤可以简单这么做:

1)停止Openfire服务
2)修改conf子目录下的openfire.xml配置文件,把true 
改为false
3)启动Openfire
4)浏览器访问http://server:9090,对Openfire重新配置,会自动生成自签名证书来匹配新域值。
5)完成配置,登陆管理控制台,在Admin Console > Server > Server Settings > Server Certificates处删除所有属于旧域名的证书。如果一个证书都没有,那就需要手动产生一个新证书。

6、修改Openfire的IM端口

默认是5222端口,要修改默认的端口,同样修改上面的数据表,找到xmpp.socket.plain.port行,如果没有这一行,那就插入这一行,值改为15222即可。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
存储 JSON 监控
日志记录和分析:ELK堆栈在内部局域网监控软件中的应用
在现代信息技术领域,监控和分析内部局域网的性能和运行状况对于确保系统的可靠性和高效性至关重要。为了实现这一目标,开发了一种基于ELK堆栈的解决方案,它利用强大的日志记录和分析工具,帮助监控人员实时追踪和解决问题。本文将介绍ELK堆栈的应用,以及如何自动提交监控到的数据到指定网站。
308 1
|
SQL 分布式计算 流计算
Flink在各大互联网公司的应用
Flink在各大互联网公司的应用
102 0
|
程序员 Linux Ruby
Mac安装并使用telnet命令操作
Mac安装并使用telnet命令操作
16609 1
Mac安装并使用telnet命令操作
|
12月前
|
机器学习/深度学习 PyTorch 调度
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
在深度学习中,学习率作为关键超参数对模型收敛速度和性能至关重要。传统方法采用统一学习率,但研究表明为不同层设置差异化学习率能显著提升性能。本文探讨了这一策略的理论基础及PyTorch实现方法,包括模型定义、参数分组、优化器配置及训练流程。通过示例展示了如何为ResNet18设置不同层的学习率,并介绍了渐进式解冻和层适应学习率等高级技巧,帮助研究者更好地优化模型训练。
790 4
在Pytorch中为不同层设置不同学习率来提升性能,优化深度学习模型
|
分布式计算 安全 Hadoop
Hadoop安全性和数据保护机制
【8月更文第28天】随着大数据技术的普及,Hadoop已成为处理大规模数据集的核心技术之一。然而,随着数据价值的增加,数据安全问题变得越来越重要。本文将深入探讨Hadoop的安全模型以及如何实施访问控制、数据加密等措施来保障数据安全。
1010 0
|
消息中间件 Docker 微服务
RabbitMQ入门指南(十一):延迟消息-延迟消息插件
RabbitMQ是一个高效、可靠的开源消息队列系统,广泛用于软件开发、数据传输、微服务等领域。本文主要介绍了DelayExchange插件、延迟消息插件实现延迟消息等内容。
2060 0
|
负载均衡 NoSQL 关系型数据库
Nginx+keepalived实现高可用集群
大型企业架构一般是用户先访问到四层负载均衡,在由四层负载均衡转发至七层服务在均衡,七层负载均衡再转发至后端服务器,四层负载均衡只起到一个分流的作用,根据用户访问的端口,比如说80端口就会跳转至七层的对应的集群,两台四层负载均衡配置是一模一样的,形成高可用,七层的配置也是一模一样的,当有1500个请求需要响应时,四层负载均衡就会平均将1500个请求分给急群中的lb,每个lb响应500个请求,减轻单点的压力。
1926 0
Nginx+keepalived实现高可用集群
|
存储 监控 并行计算
线程操纵术之更优雅的并行策略
本文详细介绍了并行编程以及一些并行问题案例中的真实业务场景。
112879 2
|
XML Java 数据格式
面试题:怎样把所有的组件的lazy-init值都设置为默认true?
面试题:怎样把所有的组件的lazy-init值都设置为默认true?
111 0
|
Linux
LINUX下载编译OpenH264
LINUX下载编译OpenH264
544 0

热门文章

最新文章