在 Debian 上优化 LNMP(Linux + Nginx + MySQL/MariaDB + PHP),一般从 系统、Nginx、PHP、MySQL/MariaDB、缓存、安全 六个层面来做。下面给你一套实战型优化方案,适合生产环境。
ulimit -n
建议至少:
ulimit -n 65535
永久生效:
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
vim /etc/sysctl.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
vm.swappiness = 10
生效:
sysctl -p
worker_processes auto;
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;
events {
worker_connections 10240;
use epoll;
}
keepalive_timeout 65;
client_max_body_size 50m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
gzip on;
gzip_comp_level 5;
gzip_min_length 1k;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff2)$ {
expires 30d;
access_log off;
}
vim /etc/php/8.x/fpm/pool.d/www.conf
推荐配置(4 核 8G 示例):
pm = dynamic
pm.max_children = 80
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
pm.max_requests = 1000
memory_limit = 256M
upload_max_filesize = 50M
post_max_size = 50M
max_execution_time = 120
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=0
SHOW ENGINES;
[mysqld]
innodb_buffer_pool_size = 2G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
max_connections = 200
query_cache_type = 0
8G 内存可把
innodb_buffer_pool_size设为4G
skip-name-resolve
apt install redis
PHP:
apt install php-redis
用于:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=phpcache:200m inactive=60m max_size=1g;
ufw allow 22
ufw allow 80
ufw allow 443
ufw enable
systemctl disable telnet
apt install certbot python3-certbot-nginx
certbot --nginx
htop
iotop
vmstat 1
Nginx 状态:
stub_status on;
| 现象 | 原因 |
|---|---|
| CPU 高 | PHP 运算重 |
| 内存高 | MySQL / PHP-FPM |
| 磁盘 IO 高 | 没开 InnoDB 缓冲 |
| 并发低 | Nginx / PHP-FPM 配置 |
✅ Debian 11/12
✅ Nginx + PHP-FPM
✅ MariaDB + InnoDB
✅ Redis
✅ Opcache
如果你愿意,可以告诉我:
我可以给你一套 精准参数配置。