LNMP(Linux + Nginx + MySQL + PHP)是流行的Web服务架构,以下是一些提升LNMP环境速度的有效方法:
# 调整worker进程数(通常等于CPU核心数)
worker_processes auto;
# 每个worker的最大连接数
worker_connections 10240;
# 开启高效文件传输模式
sendfile on;
# 减少网络数据包数量
tcp_nopush on;
tcp_nodelay on;
# 保持连接超时时间
keepalive_timeout 65;
# 开启Gzip压缩
gzip on;
gzip_min_length 1k;
gzip_comp_level 2;
gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
gzip_vary on;
# 静态资源缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg)$ {
expires 365d;
access_log off;
add_header Cache-Control "public";
}
# 进程管理方式
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
# 每个进程最大请求数
pm.max_requests = 500
# 慢日志记录
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 5s
# 禁用不必要模块
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru
# 内存限制
memory_limit = 128M
# 脚本执行时间
max_execution_time = 30
# 启用OPcache
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
[mysqld]
# 缓冲池大小(建议为系统内存的50-70%)
innodb_buffer_pool_size = 2G
# 日志文件大小
innodb_log_file_size = 256M
# 连接数设置
max_connections = 200
wait_timeout = 300
interactive_timeout = 300
# 查询缓存(MySQL 8.0已移除)
# query_cache_size = 64M
# query_cache_limit = 2M
# 表缓存
table_open_cache = 2000
# 排序缓存
sort_buffer_size = 2M
join_buffer_size = 2M
OPTIMIZE TABLE table_name;
# /etc/sysctl.conf
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 65535
ab -n 1000 -c 100 http://example.com/
通过以上优化措施,可以显著提升LNMP环境的性能和响应速度。建议每次修改配置后都进行测试,确保修改带来实际的性能提升。