浏览器无法访问 http://localhost 是因 windows 防火墙阻止 80 端口,需添加入站规则:图形界面通过 wf.msc 新建 tcp 端口 80 允许规则,或命令行执行 netsh advfirewall firewall add rule name="nginx http (port 80)" dir=in action=allow protocol=tcp localport=80 profile=any。

在 Windows 上使用 Nginx 时,如果浏览器无法访问 http://localhost 或服务器 IP,很可能是系统自带的 Windows 防火墙阻止了 80 端口的入站连接。只需添加一条入站规则即可解决。
确认 Nginx 已正常运行
先确保 Nginx 本身没问题:
- 以管理员身份打开命令提示符或 PowerShell
- 执行
nginx -t检查配置是否正确 - 执行
nginx启动(若已运行,可用nginx -s reload重载) - 访问
http://localhost,若显示 “Welcome to nginx!” 页面,说明服务正常;否则先排查 Nginx 配置或端口占用问题
手动添加 Windows 防火墙入站规则(图形界面)
适用于习惯使用图形操作的用户:
- 按 Win + R,输入
wf.msc回车,打开“高级安全 Windows Defender 防火墙” - 左侧点击“入站规则”,右侧点击“新建规则…”
- 选择“端口” → 下一步
- 选择“TCP”,在“特定本地端口”中填
80→ 下一步 - 选择“允许连接” → 下一步
- 勾选“域”“专用”“公用”(如仅本机测试,至少勾选“专用”)→ 下一步
- 名称建议填
Nginx HTTP (Port 80),描述可选 → 完成
命令行快速添加(推荐,适合批量或脚本)
以管理员身份运行 PowerShell 或 CMD,执行以下命令:
netsh advfirewall firewall add rule name="Nginx HTTP (Port 80)" dir=in action=allow protocol=TCP localport=80 profile=any
说明:
-
name:规则名称,可自定义 -
dir=in表示入站规则 -
profile=any表示对所有网络类型(域/专用/公用)生效;如只想开放内网,可改为profile=private - 添加后无需重启,立即生效
验证与排错
规则添加后建议验证:
- 再次访问
http://localhost或服务器 IP,确认能打开 - 在 PowerShell 中运行
netsh advfirewall firewall show rule name="Nginx HTTP (Port 80)"查看规则状态 - 若仍失败,检查是否被第三方安全软件拦截(如 360、腾讯电脑管家等),临时关闭测试
- 注意:Windows Server 版本可能默认禁用“专用网络”配置文件,需确认当前网络类型是否匹配规则中的 profile 设置










