在Ubuntu上配置LNMP(Linux, Nginx, MySQL, PHP)环境的防火墙通常使用 ufw
(Uncomplicated Firewall)。以下是详细的步骤:
首先,确保你的系统上已经安装了 ufw
。如果没有安装,可以使用以下命令进行安装:
sudo apt update
sudo apt install ufw
安装完成后,启用 ufw
:
sudo ufw enable
系统会提示你确认是否启用 ufw
,输入 y
并按回车键确认。
接下来,配置 ufw
规则以允许必要的端口。LNMP通常需要以下端口:
你可以使用以下命令来添加这些规则:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3306/tcp
sudo ufw allow 9000/tcp
为了能够远程管理服务器,确保允许SSH访问:
sudo ufw allow ssh
你可以使用以下命令查看当前的 ufw
状态和规则:
sudo ufw status
如果你需要临时禁用 ufw
,可以使用以下命令:
sudo ufw disable
如果你修改了防火墙规则,但不想重启服务,可以使用以下命令重新加载 ufw
:
sudo ufw reload
确保你的Nginx、MySQL和PHP-FPM服务已经正确配置并运行。以下是一些基本配置示例:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
确保MySQL配置文件(通常位于 /etc/mysql/my.cnf
或 /etc/mysql/mysql.conf.d/mysqld.cnf
)中没有阻止外部访问的设置。
确保PHP-FPM配置文件(通常位于 /etc/php/7.4/fpm/pool.d/www.conf
)中的 listen
参数设置正确:
listen = /run/php/php7.4-fpm.sock
最后,重启Nginx、MySQL和PHP-FPM服务以应用配置更改:
sudo systemctl restart nginx
sudo systemctl restart mysql
sudo systemctl restart php7.4-fpm
通过以上步骤,你应该能够在Ubuntu上成功配置LNMP环境的防火墙规则。如果有任何问题,请检查日志文件以获取更多信息。