ubuntu

LNMP在Ubuntu上的最佳实践有哪些

小樊
35
2025-06-29 06:47:02
栏目: 智能运维

LNMP是指Linux系统下Nginx、MySQL(MariaDB)和PHP这种网站服务器架构。以下是在Ubuntu上搭建和优化LNMP环境的一些最佳实践:

安装步骤

  1. 更新系统
sudo apt update
sudo apt upgrade
  1. 安装Nginx
sudo apt install nginx
  1. 安装MySQL
sudo apt install mysql-server
  1. 安装PHP及其相关扩展
sudo apt install php-fpm php-mysql
  1. 配置Nginx以支持PHP
location \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
sudo systemctl reload nginx
  1. 测试LNMP环境

/var/www/html 目录下创建一个名为 info.php 的文件,内容如下:

<?php
phpinfo();
?>

保存并关闭文件。然后在浏览器中访问服务器的IP地址,如果能够正常显示PHP信息,则说明LNMP环境已经安装成功。

配置优化

  1. 系统级ulimit设置
  1. 启用Gzip压缩

在Nginx配置中启用Gzip压缩,减少传输数据量,加快网站加载速度。

  1. 使用缓存技术

引入Varnish、Memcached或Redis等缓存系统,减少数据库查询次数,加快页面加载速度。

  1. 启用HTTP/2

在Nginx配置中启用HTTP/2协议,以提高网站的加载速度和性能。

  1. 数据库优化
  1. 操作系统层面优化

安全设置

  1. 修改SSH端口

编辑 /etc/ssh/sshd_config 文件,将SSH默认端口修改为其他非标准端口,例如2222。

Port 2222

保存并退出编辑器,然后重启SSH服务以应用更改:

sudo systemctl restart sshd
  1. 配置防火墙

使用ufw允许必要的端口,如22(SSH)、80(HTTP)、443(HTTPS)和3306(MySQL):

sudo ufw allow 2222/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3306/tcp

重启防火墙以应用设置:

sudo ufw reload
  1. 设置复杂密码

确保所有用户账户都设置了复杂且难以猜测的密码,并定期更换。

  1. 定期更新系统和软件包

使用 unattended-upgrades 包实现系统的自动更新,并定期手动运行:

sudo apt update && sudo apt upgrade
  1. 禁用root登录

/etc/ssh/sshd_config 文件中设置 PermitRootLogin no,禁止直接通过SSH登录root账户。

PermitRootLogin no
  1. 启用公钥认证

确保 PubkeyAuthentication 设置为 yes,使用密钥对进行身份验证。

  1. 安装并配置Fail2Ban

防止暴力破解攻击,通过编辑 /etc/fail2ban/jail.conf 文件进行配置。

以上步骤提供了在Ubuntu上搭建和优化LNMP环境的基本指南,但请注意,安全是一个持续的过程,需要定期更新和审查安全措施。此外,具体的命令和配置可能会因Ubuntu版本的不同而有所差异,建议参考最新的官方文档进行操作。

0
看了该问题的人还看了