Nginx 多服务反向代理方案对比与最佳实践

在自建服务器或私有云环境中,常常需要将多个 Web 服务整合到同一个公网 IP 上对外提供访问。常见的服务如 Rocket.Chat、Nextcloud、Proxmox VE、Mailcow 等,如何设计访问方式成为系统架构中一项重要决策。本文详细总结三种典型方案,并进行全面对比,帮助选择最适合的部署方式。 💡 三种典型方案 方案一:不同端口访问 思路每个服务占用一个独立的端口,用户通过域名加端口号访问,如: 优点 缺点 方案二:同域名 + 路径前缀 思路多个服务共享同一个域名,通过路径前缀区分,如: 优点 缺点 方案三:子域名 思路为每个服务配置一个独立子域名,如: 优点 缺点 ⚖️ 总体对比总结 不同端口访问 同域名 + 路径前缀 子域名 域名数量 1 1 多个子域名 端口体验 差(需手动输入) 好 好 兼容性 中 差 最好 用户体验 差 一般 最佳 配置复杂度 最简单 复杂 …

ClamAV 警告信息解析:cli_scanxz: decompress file size exceeds limits

在使用 ClamAV 进行文件扫描时,日志中经常会出现如下警告信息: pgsqlCopyEditLibClamAV Warning: cli_scanxz: decompress file size exceeds limits – only scanning 105906176 bytes 这条信息可以分解为以下几个部分: 产生原因 ClamAV 为了防止扫描过程中消耗过多系统资源,默认对解压后文件的大小设定了限制。这主要是出于性能和安全考虑,避免在面对恶意构造的巨型压缩文件时导致系统资源耗尽。 是否需要调整 若需要完整扫描所有内容,可在 clamd.conf 配置文件中通过修改如下参数进行调整: confCopyEditMaxFileSize 500M MaxScanSize 1G 需要注意,增加这些值将导致更高的内存和 CPU 占用,并可能导致扫描耗时显著增加。实际应用中,通常只在对安全性要求极高的环境或需要扫描大文件的情况下才会考虑修改。 总结 当 ClamAV 遇到解压后超出大小限制的文件时,会发出警告但继续进行扫描,仅扫描指定限制内的部分数据。这种机制是一种平衡性能与安全性的默认保护措施。在大多数场景下,可保持默认配置,无需额外干预。

ClamAV 更新失败与扫描执行问题排查总结

在使用 ClamAV 进行病毒库更新(freshclam)的过程中,出现了如下错误信息: vbnetCopyEditCan’t query current.cvd.clamav.net Invalid DNS reply. Falling back to HTTP mode. FreshClam previously received error code 429 or 403 from the ClamAV Content Delivery Network (CDN). This means that you have been rate limited or blocked by the CDN. You are still on cool-down until after: YYYY-MM-DD …

Linux 服务器安全扫描日志分析及端口占用说明

在对一台 Linux 服务器执行 rkhunter(Rootkit Hunter)安全扫描时,日志中出现了有关网络端口、系统账户以及配置的多项提示和警告。以下是对这些检测结果的详细分析及处理建议。 🟠 端口扫描结果 rkhunter 检测到 TCP 7000 端口被占用,并提示可能存在恶意 IRC bot 或 rootkit。进一步查看日志显示,该端口被 /usr/sbin/mysqld 占用,即为数据库服务 mysqld 进程。 通常情况下,MySQL 默认使用 3306 端口,若在配置文件(如 my.cnf)中修改过,可能会监听其他端口(例如测试环境或多实例场景下)。 验证端口使用情况 可通过以下命令确认具体占用情况: bashCopyEditsudo lsof -i :7000 或 bashCopyEditsudo netstat -tulnp | grep 7000 确认由 mysqld 绑定后,可判定为正常使用,无需担忧。 🟢 新增用户和组 扫描中提示 /etc/passwd 和 /etc/group 文件新增了以下用户和组: 这些是正常的软件安装(如 ClamAV …

使用 ClamAV 进行 Linux 系统全盘扫描并保存日志

在 Linux 系统中,如果需要定期对整台机器进行恶意软件(病毒、木马等)扫描,ClamAV 是一个常用的免费工具。以下介绍如何进行全盘扫描,并将完整扫描结果保存为带时间戳的日志文件,方便后续查看或归档。 基础扫描命令 ClamAV 的 clamscan 工具支持递归扫描,最基本的写法如下: bashCopyEditclamscan -r / 但这样会扫描系统中的所有文件,包括 /proc、/sys、/dev 等虚拟或设备目录,这些目录不适合扫描,会产生大量错误信息。 排除系统特殊目录 为了避免扫描无意义的系统伪文件系统,可以使用 –exclude-dir 参数排除这些目录,例如: bashCopyEdit–exclude-dir=/proc –exclude-dir=/sys –exclude-dir=/dev 此外,如果还需要排除其他目录(比如存放大文件或备份的目录),也可继续添加 –exclude-dir 参数。 自动保存扫描日志 为了后期分析结果,通常需要将扫描输出同时保存为日志文件。可以结合 tee 命令实现: bashCopyEditclamscan -r –bell –exclude-dir=/proc –exclude-dir=/sys –exclude-dir=/dev / | tee /root/clamav_scan_$(date +%Y%m%d_%H%M%S).log 命令说明 是否支持「增量扫描」 ClamAV 的 clamscan 不会自动跳过已扫描过的文件,每次执行都会重新完整扫描。它不包含「增量扫描」或「缓存机制」,也不会记住上次扫描状态。 如果需要仅扫描新增或修改过的文件,需要额外实现文件变更检测(例如使用 inotify)或定期针对指定文件夹进行局部扫描。 总结 💡 …

使用 rkhunter 执行系统 Rootkit 检查及配置 SSH 安全

近期在对 Linux 系统进行安全加固时,执行了 rootkit 检查工具 rkhunter,并同步完善了 SSH 配置。以下为详细流程总结。 🕵️ rkhunter 检查流程 在执行 rkhunter –check 时,默认会在每个阶段提示「按 Enter 继续」,需要手动操作,无法一次性跑完。为实现自动化,可使用以下命令: sudo rkhunter –check –skip-keypress 如果需要将输出保存为日志文件,可追加 tee: sudo rkhunter –check –skip-keypress | tee /root/rkhunter_check_$(date +%Y%m%d_%H%M%S).log 💾 更新文件属性数据库 执行属性文件数据库更新时,常用命令如下: udo rkhunter –propupd 默认会提示确认,可使用 -y 参数自动同意: sudo rkhunter –propupd -y 🔒 SSH 配置安全性调整 rkhunter 在检测 SSH …

VPS 内存不足导致 ClamAV 卡死的处理记录

在一台配置较低(内存较小)的 VPS 上,发现系统开机后非常卡顿,几乎无法操作。通过排查,发现 ClamAV 的自动更新服务 clamav-freshclam 会在开机启动后占用大量内存,导致系统资源被耗尽,响应变慢,甚至出现 “Transport endpoint is not connected” 等异常错误。 报错信息 shellCopyEditFailed to stop clamav-freshclam.service: Transport endpoint is not connected See system logs and ‘systemctl status clamav-freshclam.service’ for details. 原因分析 临时处理方案 在系统还能有限操作时,立即执行以下步骤,避免下次开机再次启动该服务: bashCopyEditsystemctl disable clamav-freshclam.service systemctl stop clamav-freshclam.service 如果系统已经严重卡死,仍可先执行 disable 命令(只要有一丝响应),然后耐心等待系统缓慢执行完成,再重启服务器。 当命令无法执行时,可考虑通过 VPS 管理后台(控制台、面板)强制重启,随后再进行后续修复。 重启后确认 系统重启完成后,确认服务状态: bashCopyEditsystemctl …

邮件评分优化与检测流程总结

近期针对自建域名邮件发送,进行了一次详细的评分检测与优化测试,目标是尽可能提高邮件送达率并符合各大邮件服务商的安全及合规要求。 🎯 背景 测试中使用了一个新注册的 .top 域名,通过 mail-tester.com 检测,初步得分为 8/10,整体表现较好,但仍有部分扣分项需要分析和理解。 ✅ 已完成的安全配置 ⚠️ 主要被扣分的原因 💬 内容优化尝试 ✅ 最终结论 💡 建议 🔗 参考

Mailcow📨更换域名操作指南(反向代理架构专用)

本指南适用于以下部署架构: 🧠 适用场景 你当前使用的是: ✅ 一、概览:更换域名时涉及的内容 项目 是否必须修改 说明 Mailcow 配置文件 ✅ 内部逻辑引用主机名,需更新 DNS 记录 ✅ 通知全球邮件系统指向新服务器 反向代理配置 ✅ 更换域名入口访问路径 邮箱地址使用的域名 ❌(可选) 可继续使用旧域名或添加新域名 Mailcow 的数据卷 ❌ 保留原样,邮件和设置不受影响 Docker 容器结构 ❌ 无需更改 🔧 二、操作步骤 1. 修改 Mailcow 配置文件 打开 Mailcow 安装目录下的配置文件(如 /opt/mailcow/mailcow.conf),找到并修改以下行: iniCopyEditMAILCOW_HOSTNAME=mail.old-domain.com 改为: iniCopyEditMAILCOW_HOSTNAME=mail.new-domain.com ⚠️ 该设置影响系统识别主机、SOGo 链接生成、邮件头部显示等,必须修改。 2. 修改反向代理(Nginx 等) …

Mailcow📨多域名邮件系统部署与原理详解

许多站长或技术爱好者部署 Mailcow 邮件服务器后,往往会有这样的需求: 我是否可以在一台服务器上同时托管多个邮箱域名,比如 user@domain.com 和 admin@abc.com? 答案是肯定的。Mailcow 完全支持“一套服务,多域名共用”的架构。本文将从 原理、配置方法、DNS 设置 等角度详细介绍。 ✉️ 一、理解邮箱域名与服务器域名的区别 在 Web 系统中,一个域名通常绑定一个网站。但在邮件系统中,邮箱的域名(@后面的部分)和服务器实际绑定的域名可以是不同的。 比如: 这两者之间的关联,完全靠 DNS 中的 MX 记录 来建立。 🧠 二、工作原理解析:邮件是如何投递的? 当其他服务器向 user@abc.com 发送邮件时,流程如下: ✅ 由此可见,邮件通信靠的是 DNS 中的 MX 路由,而不是服务器的主机名或 HTTPS 域名! 🛠️ 三、Mailcow 多域名部署方法 步骤 1:添加多个域名到 Mailcow 登录 Mailcow 管理后台: 步骤 2:为每个域名添加邮箱账户 即可创建如 admin@abc.com、info@xyz.org …