我有一台具有以下规格的服务器,想知道我可以为 nginx 和 php-fpm 设置的最佳配置是什么?
RAM:96GB CPU:48 核 SSD:200GB 操作系统:Drupal 每日用户:52k 到 55K PHP:7.3 Mysql:8.0
我有以下 nginx 配置:
server {
listen 80;
listen 443 domain.com www.domain.com;
root /some_directory/;
index index.php index.html;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
client_max_body_size 50M;
/// some CMS confis ///
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_read_timeout 300;
}
并使用默认的 php-fpm 设置,但我确实需要更改它,因为我收到了
[pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers),
错误
答案1
应按顺序从以下组件中寻找改进:
- Drupal 优化/缓存选项,例如利用 APCu 进行数据缓存
- MySQL数据库优化/设置
- PHP 优化(Opcode 缓存)
优化 nginx 没什么意义,因为大多数请求处理都是在 PHP/MySQL 中进行的。
此外,不可能只给出“最佳配置”,因为实际配置很大程度上取决于几个细节。最好的选择是科学方法:进行更改,衡量改进。重复,直到性能达到令人满意的水平。