LNMP是指Linux系统下Nginx、MySQL(MariaDB)和PHP这种网站服务器架构。以下是在Ubuntu上搭建和优化LNMP环境的一些最佳实践:
sudo apt update
sudo apt upgrade
sudo apt install nginx
sudo apt install mysql-server
sudo apt install php-fpm php-mysql
/etc/nginx/sites-available/default
。server
块中添加以下内容:location \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
sudo systemctl reload nginx
在 /var/www/html
目录下创建一个名为 info.php
的文件,内容如下:
<?php
phpinfo();
?>
保存并关闭文件。然后在浏览器中访问服务器的IP地址,如果能够正常显示PHP信息,则说明LNMP环境已经安装成功。
/etc/security/limits.d/99-nofile.conf
文件,设置 nofile
为 65536。在Nginx配置中启用Gzip压缩,减少传输数据量,加快网站加载速度。
引入Varnish、Memcached或Redis等缓存系统,减少数据库查询次数,加快页面加载速度。
在Nginx配置中启用HTTP/2协议,以提高网站的加载速度和性能。
vm.swappiness
、vm.dirty_background_ratio
、net.ipv4.tcp_tw_recycle
等。编辑 /etc/ssh/sshd_config
文件,将SSH默认端口修改为其他非标准端口,例如2222。
Port 2222
保存并退出编辑器,然后重启SSH服务以应用更改:
sudo systemctl restart sshd
使用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
确保所有用户账户都设置了复杂且难以猜测的密码,并定期更换。
使用 unattended-upgrades
包实现系统的自动更新,并定期手动运行:
sudo apt update && sudo apt upgrade
在 /etc/ssh/sshd_config
文件中设置 PermitRootLogin no
,禁止直接通过SSH登录root账户。
PermitRootLogin no
确保 PubkeyAuthentication
设置为 yes
,使用密钥对进行身份验证。
防止暴力破解攻击,通过编辑 /etc/fail2ban/jail.conf
文件进行配置。
以上步骤提供了在Ubuntu上搭建和优化LNMP环境的基本指南,但请注意,安全是一个持续的过程,需要定期更新和审查安全措施。此外,具体的命令和配置可能会因Ubuntu版本的不同而有所差异,建议参考最新的官方文档进行操作。