博客访客专享:额外赠送 3 个月免费使用期 + 三年计划 10% 折扣 YSBLOG10
抢购

如何在 Linux 服务器上优化 DirectAdmin – 简易指南

优化 Linux 服务器上的 DirectAdmin使用 CustomBuild 更新您的技术栈,切换到现代 Web 服务器, PHP-FPM,调谐 PHP, MySQL 使用 MariaDB 和内核,启用缓存(OPcache/Redis),通过 CSF 和 ModSecurity 进行安全加固,并监控资源使用情况。首先进行备份,逐步测试变更,并实现日常维护自动化。

DirectAdmin 是一款轻量级且可靠的控制面板,但需要进行巧妙的调优才能达到最佳性能和安全性。在本指南中,我将向您展示如何在 Linux 服务器环境中优化 DirectAdmin,就像我们为生产环境网站所做的那样——简洁、安全且可衡量。


什么是 DirectAdmin 优化?为什么它如此重要?

优化是指配置您的操作系统、Web堆栈、数据库、邮件系统等。 DNS以及 DirectAdmin 服务,以降低延迟、处理更多并发流量并确保安全。如果配置正确,您将会看到更快的速度。 PHP 响应时间更短 CPU 以及 RAM 用法更少的 5xx 错误,更顺畅的电子邮件送达率。

前提条件和安全第一

检查您的环境

  • Linux 发行版: AlmaLinux/Rocky、CentOS Stream、Debian 或 Ubuntu LTS
  • DirectAdmin with CustomBuild 2.x
  • root 或 sudo 访问
  • 最低2 CPU 核心数:4–8 GB RAM 适用于小型多站点托管

备份和暂存

  • 创建完整快照或镜像级备份。
  • 使用 DirectAdmin > 管理员备份/传输进行帐户和配置备份/传输。
  • 请在维护窗口期间或先在测试服务器上应用更改。

更新堆栈并建立基线

系统和自定义构建更新

# OS packages
sudo dnf -y update || sudo apt -y update && sudo apt -y upgrade

# DirectAdmin CustomBuild
cd /usr/local/directadmin/custombuild
./build update
./build versions

保持 PHP 在当前支持的分支(8.2/8.3)上 Apache 2.4 版本,带 MPM 事件,或考虑开放模式LiteSpeed 对于高并发环境,务必启用 OPcache。

选择合适的 Web 技术栈

  • Nginx 作为反向代理 + Apache (nginx_apache):平衡,广泛兼容。
  • Apache 仅限(Apache):简单,适合低流量场景。
  • 可选LiteSpeed (openlitespeed): 快速高效,易于使用的 HTTP/3;非常适合 WordPress。
cd /usr/local/directadmin/custombuild
# Example: Nginx reverse proxy + Apache + PHP-FPM + OPcache
./build set webserver nginx_apache
./build set php1_release 8.2
./build set php1_mode php-fpm
./build set opcache yes
./build set modsecurity yes
./build set modsecurity_ruleset owasp
./build all d
./build rewrite_confs

如果您选择“开放”LiteSpeed,将 Web 服务器设置为 openlitespeed 并重建网站。切换后测试网站功能。


Web 服务器和 PHP 优化

PHP-FPM池调优

每个 DirectAdmin 用户或域都可以拥有自己的 PHP-FPM池。避免池大小过大。 CPU 思维混乱或记忆力衰竭。估计 pm.max_children 使用 RAM/平均值 PHP 进程大小(WordPress 通常为 60–90 MB)。

; Example: /usr/local/php72/etc/php-fpm.d/user.domain.conf
[domain.com]
user = domain
group = domain
listen = /usr/local/php56/var/run/domain.sock
pm = dynamic
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 4
pm.max_spare_servers = 8
pm.max_requests = 500
pm.process_idle_timeout = 10s
; Adjust per user based on traffic and RAM

对于许多小型网站而言, pm = ondemand 采用保守的限制可以减少空闲内存。
对于 繁忙的网站, pm = dynamic 提供更稳定的延迟。

快速 OPcache 设置 PHP

; php.ini or /usr/local/php*/lib/php.ini
opcache.enable=1
opcache.memory_consumption=192
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=100000
opcache.validate_timestamps=1
opcache.revalidate_freq=60
opcache.save_comments=1

增加 opcache.memory_consumption 如果您托管多个网站,请重新启动。 PHP-FPM 更改后。

Nginx 反向代理调整(如果使用 nginx_apache)

  • 启用 gzip 用于文本资源。
  • 将静态文件缓存到遥远的未来 过期标头.
  • 在 TLS 监听器上提供 HTTP/2 服务。
# /etc/nginx/nginx.conf (snippet)
gzip on;
gzip_comp_level 5;
gzip_types text/plain text/css application/javascript application/json image/svg+xml;

# Example SSL server block directive
listen 443 ssl http2;

对于 HTTP/3,开放LiteSpeed 这是DirectAdmin中最简单的方法。在OLS监听器中启用QUIC/HTTP/3并重启。

另请参阅: 如何在不丢失数据的情况下修复 Linux 服务器上的 MongoDB 问题


数据库(MariaDB/MySQL) 优化

基于此调整 MariaDB RAM 以及工作负载。重点关注 InnoDB 缓冲池和日志文件大小。避免在现代 MariaDB 上使用旧式查询缓存。

# /etc/my.cnf.d/server.cnf or /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
# Example for 8 GB RAM server hosting WordPress
innodb_buffer_pool_size = 4G
innodb_log_file_size    = 1G
innodb_flush_log_at_trx_commit = 2
innodb_flush_method     = O_DIRECT
max_connections         = 200
tmp_table_size          = 256M
max_heap_table_size     = 256M
thread_cache_size       = 100
table_open_cache        = 4000
performance_schema      = ON
slow_query_log          = 1
slow_query_log_file     = /var/log/mysql-slow.log
long_query_time         = 1

编辑完成后重启 MariaDB,然后运行一天的工作负载并分析慢查询。 mysqltuner 以及 pt-query-digest 用于优化设置和索引繁重的查询。

sudo mysqltuner
sudo apt install percona-toolkit || sudo dnf install percona-toolkit
pt-query-digest /var/log/mysql-slow.log | less

邮件, DNS以及基本服务

邮件堆栈(Exim/Dovecot)和垃圾邮件控制

  • 请使用 Maildir,而不是 mbox(DirectAdmin 默认使用 Maildir)。
  • 通过 CustomBuild 启用 SpamAssassin 或 Rspamd(Rspamd 更轻量级且更准确)。
  • 限制并发 SMTP 连接数以保护 CPU/RAM.
# Enable Rspamd in CustomBuild
cd /usr/local/directadmin/custombuild
./build set exim yes
./build set dovecot yes
./build set spamassassin no
./build set rspamd yes
./build rspamd d
./build rewrite_confs

DKIM、SPF 和 DMARC

从 DirectAdmin > DNS 管理层,启​​用 DKIM 并为每个域创建 SPF 和 DMARC 记录。这有助于提高邮件送达率和信誉度。

DNS 性能:功率DNS

电力DNS 对于大多数托管情况而言,它比 BIND 速度更快,资源占用更少。

cd /usr/local/directadmin/custombuild
./build set powerdns yes
./build set bind no
./build powerdns d
./build rewrite_confs

缓存和加速

Redis 对象缓存

安装 Redis 并将其用于 WordPress 对象缓存可以降低数据库负载,并缩短首字节到达时间。

# Install Redis server
sudo dnf -y install redis || sudo apt -y install redis
sudo systemctl enable --now redis

# In PHP, install redis extension via CustomBuild
cd /usr/local/directadmin/custombuild
./build set redis yes
./build redis d

使用信誉良好的插件(例如“Redis Object Cache”),并为每个站点设置唯一的前缀。对于 WooCommerce,请启用会话锁定。

静态资源和 CDN

  • 充分利用浏览器缓存 用于图像、CSS、JS。
  • 尽可能提供 WebP/AVIF 格式。
  • 卸载大型资产并使用 CDN 来缩短全球范围内的 TTFB。

增强安全性而不损失性能

CSF/LFD 防火墙

ConfigServer 安全与防火墙 (CSF) 与 DirectAdmin 完美集成。您可以将 IP 地址加入白名单、限制登录尝试次数并阻止滥用端口。

# Basic CSF workflow
csf -e                # enable
csf -a YOUR_IP        # allowlist admin IP
csf -g 1.2.3.4        # grep IP status
csf -t                # view temp bans

ModSecurity(OWASP CRS)和排除项

通过 CustomBuild 启用带有 OWASP 规则集的 ModSecurity,然后在出现误报时添加合法应用程序的规则排除项。监控您的 Apache/Nginx 错误日志用于识别被阻止的请求。

Let's Encrypt、TLS 1.2/1.3 和 ECDSA

  • 绝大部分储备使用 让我们加密 DirectAdmin 中的自动化。
  • 为保证性能,优先选择 ECDSA 证书(如果客户端支持)。
  • 禁用 TLS 1.0/1.1;强制使用强加密算法。

SSH 硬化

  • 移动 SSH 从端口 22(可选),仅允许密钥认证,如果您的工作流程允许,请禁用 root 登录。
  • 安装 fail2ban 如果你不使用 LFD 的 SSH 保护。

系统级调优(内核和限制)

/etc/sysctl.conf 优化

# /etc/sysctl.d/99-directadmin-tuning.conf
fs.file-max = 2097152
net.core.somaxconn = 65535
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_local_port_range = 10240 65535
vm.swappiness = 10
fs.inotify.max_user_watches = 1048576

# apply
sudo sysctl --system

文件描述符和 Systemd 覆盖

# Example for Nginx/Apache/MariaDB
sudo systemctl edit nginx
# then add:
# [Service]
# LimitNOFILE=1048576

sudo systemctl daemon-reload
sudo systemctl restart nginx

日志和旋转

  • 确保 logrotate 已启用 Apache/Nginx, PHP-FPM、Exim、Dovecot 和 MySQL 日志。
  • 限制 journald 大小以防止磁盘压力(/etc/systemd/journald.conf).

监控和故障排除

快速找到瓶颈

# CPU/RAM
htop
atop

# Disk I/O
iotop -oPa

# Network
ss -tulpn

# Web errors
tail -f /var/log/httpd/error_log       # Apache (path may vary)
tail -f /var/log/nginx/error.log       # Nginx

# PHP-FPM
journalctl -u php-fpm --since "10 min ago"

# Mail
tail -f /var/log/exim/mainlog

打开 MySQL 记录缓慢的查询日志并修复性能最差的查询。对于 WordPress,可以使用 Query Monitor 来查找占用资源过多的插件或主题。


自动化、备份和安全更新

DirectAdmin 管理员备份/传输

  • 使用远程存储安排每日帐户备份(SFTP/FTP/S3 通过 rclone)。
  • 对于大型数据集,请使用增量式 rsync。
  • 每季度进行一次恢复测试,以确保完整性。

保持可控的更新节奏

  • 每周进行操作系统安全更新。
  • 更新 PHP 次要版本 及时测试重大升级。
  • 跟踪 CustomBuild 版本,并在更改后重建服务。

快速见效的方法和常见陷阱

  • 启用 OPcache 和 PHP-FPM: 轻松加速。
  • 合适的尺码 PHP-FPM池: 防止出现“内存不足”和 502 错误。
  • 使用 Redis 作为 WordPress 对象缓存:减少数据库负载。
  • 避免启用所有 ModSecurity 规则;根据您的应用程序进行调整。
  • 不要过度分配交换空间;注意 iowait 和磁盘健康状况。

常见问题

哪种 Web 技术栈最适合提升 DirectAdmin 的性能?

对于一般主机托管, Nginx 反向代理 + Apache + PHPFPM 实现了很好的平衡。为了获得最佳性能和更简单的 HTTP/3 支持,OpenLiteSpeed 性能极其出色,尤其适用于 WordPress。务必启用 OPcache 和 size PHP-FPM 池化适当。

我如何加速 PHP 在 DirectAdmin 中?

绝大部分储备使用 PHP-FPM(非 CGI),启用 OPcache 并分配足够的内存,升级到 PHP 8.2/8.3,并进行调音 pm.max_children 4.9分 RAM 和平均 PHP 进程大小。对于动态网站,添加 Redis 对象缓存以减少数据库调用次数。

如何针对多个 WordPress 站点优化 MariaDB?

首先将 InnoDB 缓冲池的容量设置为 50-70% 左右 RAM,设定 innodb_log_file_size 至 512M–1G,保持 performance_schema 开启可见性,启用慢查询日志记录,并迭代 mysqltuner 以及 pt-query-digest在应用层使用 Redis 对象缓存。

如果我使用 CDN/WAF,是否还需要 ModSecurity?

本地 WAF(例如 ModSecurity)可在 CDN/WAF 规则失效或请求绕过 CDN 时提供额外保护。使用 OWASP CRS 作为基准,并为已知的安全模式创建排除项,以降低误报率并保持良好的性能。

我可以在 DirectAdmin 上启用 HTTP/3 (QUIC) 吗?

最直接的途径是开放LiteSpeed DirectAdmin 支持 HTTP/3,并提供简单的监听器设置。 Nginx 可以通过特定版本支持 HTTP/3,但这更复杂。务必测试客户端,并无缝回退到 HTTP/2。

分享通过:

普拉拉德·普拉贾帕蒂

Prahlad是一位来自印度的网站托管专家和专注于SEO的自然增长专家。自2019年以来,他一直活跃于数字领域,致力于通过简洁、可持续的策略帮助客户发展网站。他热爱学习,并能快速适应变化,坚信细节决定成败。了解他对网站托管和SEO的独到见解,提升您的在线影响力。

发表评论

您的电邮地址不会被公开。 必填项 *

滚动到顶部