如何配置Nginx使其仅通过IP:Port访问,禁止直接IP访问?
解决Nginx端口配置问题的步骤
1. 处理默认80端口的Server块
你当前能直接通过IP访问网站,说明Nginx里存在监听80端口的默认Server配置(可能在nginx.conf主文件或conf.d/default.conf子配置中)。需要修改或移除这个配置:
- 若要把80端口留给另一个站点,修改该Server块的
listen指令为目标端口(比如8081),并配置对应站点的根目录:
server { listen 8081; server_name _; root /path/to/another/site; index index.html; }
- 若暂时不需要80端口的站点,可直接让该端口拒绝连接:
server { listen 80; return 444; }
2. 完善8080端口的Server配置
你当前的8080端口Server块仅配置了监听规则,缺少网站根目录、索引文件等核心内容,导致无法返回页面。补充完整配置:
http { server { listen 192.158.1.38:8080; server_name 192.158.1.38; # 替换为你的mkdocs静态文件实际路径 root /usr/local/mkdocs/site; index index.html index.htm; location / { try_files $uri $uri/ =404; } } ... }
3. 验证配置并重启Nginx
- 先检查配置语法是否正确:
nginx -t
输出test is successful则说明配置无误。
- 重启Nginx使配置生效:
systemctl restart nginx # 若系统不支持systemctl,使用:service nginx restart
4. 确认端口监听状态
执行以下命令,检查8080端口是否被Nginx正确监听:
ss -tulpn | grep nginx
若结果中出现192.158.1.38:8080,说明监听配置已生效。
5. 测试访问
此时从局域网其他PC访问192.158.1.38:8080即可看到mkdocs网站,直接访问192.158.1.38(80端口)会被拒绝或跳转到你配置的其他站点。
内容的提问来源于stack exchange,提问作者el-don-quijote
相关产品推荐
相关产品推荐

