You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nginx中为IP配置子域名?测试绑定失败求助

在Nginx中结合IP设置子域名的解决方案

首先得说清楚:你遇到的teste.x.x.x.x配置不生效的核心原因——这种格式并不是“带前缀的IP地址”,而是一个需要解析的域名。浏览器或客户端会把它当成普通域名去查DNS,但你既没在本地hosts里映射,也没在公网DNS上配置记录,自然找不到服务器,Nginx也就收不到请求。

下面分两种场景给你具体的解决步骤:

一、本地/测试环境:用hosts文件快速搞定

如果只是自己测试用,不需要公网访问,直接修改本地hosts文件就能解决:

  • Windows:打开C:\Windows\System32\drivers\etc\hosts(需要管理员权限)
  • Linux/macOS:编辑/etc/hosts(用sudo nano /etc/hosts)

在文件末尾添加上这两行,把x.x.x.x替换成你的服务器实际IP:

x.x.x.x  teste.x.x.x.x
x.x.x.x  teste2.x.x.x.x

保存后刷新本地DNS缓存:

  • Windows:打开命令提示符,输入ipconfig /flushdns
  • Linux:sudo systemd-resolve --flush-caches(不同发行版可能略有差异)
  • macOS:sudo dscacheutil -flushcache

二、公网生产环境:配置DNS解析

如果要让外网用户也能访问,你需要在DNS服务商后台配置A记录:

  1. 登录你的域名管理后台(比如阿里云、Cloudflare等)
  2. 添加两条A记录:
    • 第一条:主机记录填teste,记录值填你的服务器IPx.x.x.x
    • 第二条:主机记录填teste2,记录值同样填x.x.x.x

    注意:这里不建议用teste.x.x.x.x这种格式,因为大部分DNS服务商不支持把IP段作为域名后缀。更合理的做法是用一个已备案的主域名(比如example.com),然后配置teste.example.com指向你的IP,这样既符合域名规范,也方便后续配置HTTPS。

三、Nginx的正确配置示例

不管用哪种方法,你的Nginx server块配置要确保正确:

server {
    listen 80; # 如果用HTTPS就改成443,并加上ssl相关配置
    server_name teste.x.x.x.x teste2.x.x.x.x;

    # 替换成你的网站根目录和默认页面
    root /var/www/teste-site;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}

配置完一定要重载Nginx让配置生效:

# Linux/macOS
sudo nginx -s reload

# Windows(如果是服务安装版)
net stop nginx && net start nginx

四、验证配置是否正常

可以用curl命令直接测试,绕开DNS解析,确认Nginx是否正确响应:

curl -H "Host: teste.x.x.x.x" http://x.x.x.x

如果返回你的网站内容,说明Nginx配置没问题,剩下的就是确保客户端能正确解析teste.x.x.x.x这个“域名”。

额外提醒

  • 如果要配置HTTPS,teste.x.x.x.x这类格式很难申请到正规SSL证书(CA机构一般不签发IP前缀的证书),所以还是建议改用正常的子域名(比如teste.example.com)。
  • 如果你想匹配所有前缀的“IP子域名”,可以把server_name改成*.x.x.x.x,但同样需要对应的hosts或DNS配置支持。

内容的提问来源于stack exchange,提问作者Diogo Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:57:07