温馨提示×

LNMP在Debian上的使用技巧

小樊
43
2025-11-11 05:22:27
栏目: 智能运维

LNMP在Debian上的使用技巧

一、基础环境安装与配置

1. 系统准备

安装前确保系统包列表最新,避免依赖冲突:
sudo apt update && sudo apt upgrade -y
建议使用Debian最小化安装(如debian-minimal),减少不必要的软件包占用资源。

2. 安装Nginx

通过APT安装Nginx(默认仓库版本稳定),并设置开机自启:
sudo apt install nginx -y
sudo systemctl enable --now nginx
验证安装:浏览器访问服务器IP,若看到Nginx欢迎页面则成功。

3. 安装MariaDB/MySQL

推荐使用MariaDB(MySQL分支,兼容性好),安装后运行安全脚本强化配置:
sudo apt install mariadb-server -y
sudo mysql_secure_installation
按提示设置root密码、移除匿名用户、禁止root远程登录等。

4. 安装PHP及扩展

根据项目需求选择PHP版本(如7.4/8.1),安装PHP-FPM(处理PHP请求)及常用扩展(MySQL、GD、CURL等):
sudo apt install php-fpm php-mysql php-gd php-curl php-mbstring php-opcache -y
sudo systemctl enable --now php7.4-fpm(版本号按实际调整)。

5. 配置Nginx支持PHP

编辑Nginx默认站点配置(/etc/nginx/sites-available/default),在server块中添加PHP处理逻辑:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 确保路径与PHP-FPM配置一致
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

测试Nginx配置语法:sudo nginx -t,无误后重载:sudo systemctl reload nginx

二、性能优化技巧

1. Nginx优化

调整核心参数提升并发处理能力:

  • worker_processes auto;(自动匹配CPU核心数)
  • worker_connections 1024;(单个worker最大连接数)
  • sendfile on;(启用高效文件传输)
  • gzip on;(开启Gzip压缩,减少传输体积)
  • keepalive_timeout 65;(保持连接复用,降低TCP开销)
    示例配置(/etc/nginx/nginx.conf):
http {
    worker_processes auto;
    worker_rlimit_nofile 65535;
    sendfile on;
    gzip on;
    gzip_types text/plain text/css application/json application/javascript;
    keepalive_timeout 65;
    # ...其他配置
}
```。

#### 2. PHP优化
启用OPcache加速PHP脚本执行(`/etc/php/7.4/fpm/php.ini`):  
```ini
opcache.enable=1
opcache.memory_consumption=256
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1

调整内存限制:memory_limit = 256M(根据应用需求设置,避免过大浪费内存)。

3. MySQL优化

调整内存相关参数提升数据库性能(/etc/mysql/mariadb.conf.d/50-server.cnf):

[mysqld]
innodb_buffer_pool_size = 1G  # 物理内存的50%-80%(如16GB内存设为8G-12G)
innodb_log_file_size = 256M   # 日志文件大小,提升写入性能
innodb_flush_log_at_trx_commit = 2  # 平衡性能与数据安全性(0最快,2折中,1最安全)
query_cache_size = 64M        # 查询缓存(适合读多写少场景)

重启MariaDB生效:sudo systemctl restart mariadb

4. Linux系统优化

提升系统资源利用率:

  • 增加文件描述符限制:ulimit -n 65535(永久生效需修改/etc/security/limits.conf
  • 调整网络参数:
    sysctl -w net.core.somaxconn=65535
    sysctl -w net.ipv4.tcp_fin_timeout=30
    sysctl -w net.ipv4.tcp_fastopen=3
    
    永久生效需将上述命令添加到/etc/sysctl.conf

三、安全加固措施

1. 防火墙配置

使用ufw限制访问,仅开放必要端口(HTTP 80、HTTPS 443):
sudo ufw allow 'Nginx Full'
sudo ufw enable
禁止root远程登录(/etc/ssh/sshd_config):
PermitRootLogin no
重启SSH:sudo systemctl restart ssh

2. 数据库安全

运行mysql_secure_installation完成以下操作:

  • 设置root密码
  • 移除匿名用户
  • 禁止root远程登录
  • 移除测试数据库。

3. Nginx安全

  • 隐藏服务器版本:server_tokens off;/etc/nginx/nginx.conf
  • 禁止访问敏感文件:
    location ~ /\.ht {
        deny all;
    }
    location ~* \.(env|git|log)$ {
        deny all;
    }
    ```。
    
    
    

四、日常维护技巧

1. 监控与日志

  • 使用htop(实时进程监控)、glances(系统资源概览)监控服务器状态
  • 定期检查Nginx错误日志(/var/log/nginx/error.log)和PHP-FPM日志(/var/log/php7.4-fpm.log),快速定位问题。

2. 备份策略

  • 数据库备份:使用mysqldump定期导出数据库(如每天凌晨):
    mysqldump -u root -p --all-databases > /backups/mysql_$(date +%F).sql
  • 文件备份:使用rsynctar备份网站根目录(/var/www/html)。

3. 自动化任务

使用cron设置定时任务,例如每天凌晨3点清理Nginx缓存:
0 3 * * * rm -rf /var/cache/nginx/*
编辑cron:crontab -e

0