发布于2026-07-20 阅读(0)
扫一扫,手机访问
在Nginx的部署与运维中,防火墙规则往往是很多人容易忽略却又极其重要的一环。无论你是刚入门还是已经踩过不少坑,一个清晰的规则体系能帮你省掉很多“排查半天发现是端口没开”的麻烦。下面梳理的这几个环节,基本覆盖了从Nginx自身配置到系统级防火墙的设置思路。
首先得确认Nginx的服务器块(server block)配置正确。通常配置文件放在/etc/nginx/nginx.conf或/etc/nginx/sites-a vailable/目录下。举个最简单的例子:
server {listen 80;server_name example.com;location / {root /var/www/html;index index.html index.htm;}}这个片段指定了监听80端口,域名绑定,以及根目录。别看它基础,很多问题就是从这里漏掉的——比如忘记listen正确端口,或者server_name写错。
如果你的系统用的是iptables(不少Linux发行版默认就是它),那么规则添加方式比较直接。先看几个常用场景:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPTsudo iptables -A INPUT -j DROP注意顺序:先放行需要的端口,最后再补一条默认丢弃,否则先扔了就把自己关门外了。
sudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.1 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -s 192.168.1.1 -j ACCEPT这样只有来自192.168.1.1的请求才能访问Nginx,其他IP一概拒绝。
如果你觉得iptables的规则写起来有点费劲,ufw(Uncomplicated Firewall)是更友好的选择。操作非常规整:
sudo ufw enablesudo ufw allow 80/tcpsudo ufw allow 443/tcpsudo ufw default deny incomingsudo ufw allow from 192.168.1.1 to any port 80sudo ufw allow from 192.168.1.1 to any port 443ufw底层其实还是调用了iptables,但命令更直观,适合日常管理。
规则配好了,最怕重启后失效。保存这一步千万别省。
sudo iptables-sa ve > /etc/iptables/rules.v4这个命令会把当前规则写入文件,系统重启时通过iptables-restore自动加载(前提是启用了对应的服务)。
ufw的规则通常会自动持久化,但如果你想确认或手动调整,可以查看状态:
sudo ufw status numbered然后需要修改时可以直接编辑/etc/ufw/before.rules文件添加自定义规则。
最后,验证一下是否真的生效。最常用的两个命令:
sudo iptables -L -vsudo ufw statusiptables -L -v能显示每条规则的包计数,一眼就能看出哪些规则正在被命中。而ufw status则列出所有允许/拒绝的规则列表,清晰明了。
以上这些步骤基本覆盖了Nginx搭配防火墙的常见场景。实际生产环境中,你可能还需要考虑速率限制、连接数限制、IP黑名单等更细粒度的控制——但先把基础的流量管控做好,后面的事情就顺多了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8