温馨提示×

Ubuntu中LNMP配置文件解析

小樊
38
2025-09-14 13:24:52
栏目: 智能运维

Ubuntu中LNMP(Linux+Nginx+MySQL+PHP)的核心配置文件及作用如下:

1. Nginx配置文件

  • 主配置文件/etc/nginx/nginx.conf
    定义全局参数(如用户权限、工作进程数、错误日志路径等),通常通过include指令引入站点配置文件。
  • 站点配置文件/etc/nginx/sites-available/{站点名}.conf
    • 监听端口与域名listen指定端口(如80/443),server_name设置域名或IP。
    • 静态文件服务root指定网站根目录,index设置默认访问文件。
    • 反向代理/负载均衡:通过location块配置proxy_pass转发请求到后端服务器,upstream定义后端服务器组。
    • PHP处理location ~ \.php$块中通过fastcgi_pass连接PHP-FPM,需指定套接字路径(如unix:/var/run/php/php7.4-fpm.sock)。

2. MySQL配置文件

  • 主配置文件/etc/mysql/mysql.conf.d/mysqld.cnf
    • 基础设置bind-address控制监听IP(127.0.0.1仅本地访问,0.0.0.0允许远程),port设置端口(默认3306)。
    • 性能优化innodb_buffer_pool_size调整InnoDB缓冲池大小,max_connections设置最大连接数。
    • 主从复制:主服务器需配置log_binserver-id,从服务器通过CHANGE MASTER TO指定主服务器信息。

3. PHP配置文件

  • PHP-FPM主配置文件/etc/php/{version}/fpm/php-fpm.conf
    管理PHP-FPM进程,参数包括pid(进程ID文件路径)、error_log(错误日志路径)等。
  • PHP-FPM池配置文件/etc/php/{version}/fpm/pool.d/www.conf
    • 进程管理pm设置进程模式(dynamic动态调整),pm.max_children控制最大子进程数。
    • 请求处理request_terminate_timeout设置请求超时时间,listen指定监听套接字或端口。
  • PHP核心配置文件/etc/php/{version}/cli/php.ini(命令行)或/etc/php/{version}/fpm/php.ini(FPM模式)
    • 安全设置display_errors关闭错误显示(生产环境),log_errors开启日志记录。
    • 性能优化memory_limit调整内存限制,upload_max_filesize限制上传文件大小。

4. 关键配置逻辑

  • Nginx与PHP-FPM协作:通过fastcgi_pass将PHP请求转发至PHP-FPM进程,需确保两者监听的套接字或端口一致。
  • 负载均衡配置:在Nginx的http块中使用upstream定义后端服务器组,支持轮询(默认)、加权轮询等策略。
  • 安全加固:通过server_name避免主机头攻击,限制敏感目录访问(如location ~ ^/(wp-admin|config))。

5. 配置修改与生效

  • 修改配置文件前建议备份(如sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak)。
  • 使用sudo nginx -t测试Nginx配置语法,sudo systemctl reload nginx重启服务。
  • MySQL配置修改后需重启服务:sudo systemctl restart mysql
  • PHP-FPM配置修改后重启:sudo systemctl restart php{version}-fpm

参考来源

0