温馨提示×

如何优化Debian的LNMP

小樊
61
2025-05-04 03:15:08
栏目: 智能运维

优化Debian上的LNMP(Linux, Nginx, MySQL/MariaDB, PHP)环境可以从多个方面进行,包括性能、安全性、资源利用率等。以下是一些基本的优化步骤和建议:

Nginx优化

  • worker_processes:设置为auto以自动根据CPU核心数调整工作进程数。
  • worker_cpu_affinity:设置为auto以自动分配工作进程到不同的CPU核心。
  • worker_rlimit_nofile:设置为65535以允许更多的文件描述符。
  • sendfile:开启以减少文件传输的开销。
  • tcp_nodelay:开启以提高网络I/O性能。
  • keepalive_timeoutkeepalive_requests:分别设置为一个较大的值以保持连接复用。
  • fastcgi_read_timeout:根据需要调整以优化FastCGI应用程序的响应时间。
  • server_tokens:关闭以减少HTTP头信息的大小。
  • error_log:设置为/var/logs/nginx/error.log以减少日志记录对性能的影响。

PHP优化

  • opcache:启用并配置OpCache以缓存PHP脚本编译结果。推荐配置包括:
    • opcache.enable=1
    • opcache.interned_strings_buffer=64
    • opcache.max_accelerated_files=10000
    • opcache.memory_consumption=256
    • opcache.save_comments=1
    • opcache.fast_shutdown=1
    • opcache.validate_timestamps=1
    • opcache.fast_shutdown=1
  • PHP配置(通常是/etc/php/7.x/fpm/php.ini):
    • 调整memory_limitmax_execution_time
    • 调整pm.max_childrenpm.start_serverspm.min_spare_serverspm.max_spare_servers以优化PHP-FPM进程管理。

MySQL优化

  • 内存配置:根据服务器内存调整innodb_buffer_pool_size,通常设置为系统内存的50%-80%。
  • 连接数:调整max_connections以匹配服务器的处理能力。
  • 查询缓存:根据查询访问模式启用或调整query_cache_sizequery_cache_type
  • 慢查询日志:启用并定期检查慢查询日志以优化查询性能。

Linux系统优化

  • 文件描述符限制:通过ulimit -n 65535提高文件描述符限制。
  • 网络参数:调整以下参数以优化网络性能:
    • sysctl -w net.core.somaxconn=65535
    • net.ipv4.ip_local_port_range="1024 65535"
    • net.ipv4.tcp_fin_timeout="30"
    • net.ipv4.tcp_slow_start_after_idle="0"
    • net.ipv4.tcp_fastopen="3"
    • net.ipv4.tcp_syncookies="1"
    • net.core.netdev_max_backlog="65535"
    • net.nf_conntrack_max="2097152"

安全性优化

  • 更新系统:确保系统是最新的,安装所有可用的安全更新。
  • 配置防火墙:使用ufw限制入站和出站流量,仅允许必要的端口(如HTTP、HTTPS和SSH)连接。
  • SSH服务安全配置:使用SSH密钥对进行身份认证,禁用root远程登录,限制空密码登录。
  • 数据库安全:使用mysql_secure_installation命令进行安全设置,包括修改MySQL的默认口令、关闭3306端口监听(如果不需要远程访问)、修改默认字符集等。

监控和日志

  • 监控工具:使用工具如Prometheus和Grafana来监控服务器的性能。
  • 日志管理:定期检查和分析Nginx和PHP-FPM的日志文件,以便及时发现和解决问题。

在进行任何配置更改后,都应该进行充分的测试以确保系统的稳定性和性能提升。

0