cms.example.com
我在 IIS和中有两个域oldexample.com
。
我想oldexample.com
变成api.example.com
我的 API 托管在这个子域上。几周前我已经添加了正确的 DNS 设置(与 cms 相同,但后来将名称更改为 api)。
cms.example.com
可以访问,也oldexample.com
一样。但在 VPS 环境之外则api.example.com
无法访问。
当我在手机或笔记本电脑上导航到此 URL 时,出现 404 错误。当我通过远程桌面中的浏览器导航到此 URL 时,它会显示我期望的响应。
因为 DNS 已经这样好几个星期了,所以我知道问题不可能出在那里(例如等待它更新)。
这里出了什么问题?我该如何解决这个问题?
我将 HTTP 和 HTTPS 绑定都设置为端口 80。
oldexample.com
并api.example.com
受同一项目约束。
答案1
HTTP 状态代码 404(又称“未找到”)表示您的浏览器是到达某处的网络服务器,但未找到所请求的页面。
鉴于你的情况,我将按照以下步骤进行:
- 检查域名是否
api.example.com
解析到正确的公共 IP 地址 - 检查公用 IP 地址上的 80 端口是否可以从 Internet 访问
- 检查响应的网站是否确实是你期望的网站,而不是某个默认网站
我建议从连接到互联网的 PC 进行检查,而不是使用服务器本身的远程桌面。
当然,我假设example.com
它在您的问题中被用作一个例子,而真实的域是一个有效的域,您实际上可以控制它!
对于第一次检查,在 Linux 机器上,我会dig api.example.com
在终端上执行。在 Windows 机器上,我会执行nslookup api.example.com
。在 DNS 响应中,IP 地址应该是您的 VPS 服务器的公共 IP 地址。如果不是,则说明您的 DNS 配置错误。
对于第二项检查,在 Linux 机器上我会执行telnet api.example.com 80
。在 Windows 机器上也一样(在 Windows 的最新版本中,默认情况下不安装 telnet)。我希望看到Connected to api.example.com
。如果它显示Trying <ip-address-here>
而没有其他内容,则端口 80 无法从 Internet 访问。也许您的 VPS 提供商默认阻止端口,您需要从某个管理控制台或类似的东西明确打开它们。
如果以上检查没有问题,您需要处理您的 IIS 配置。