使用带有 nginx http 代理的子域进行 RESTful api 调用

使用带有 nginx http 代理的子域进行 RESTful api 调用

我已将 godaddy 子域 backend.example.com 和 app.example.com 转发到 Google Compute Engine 的同一公共 IP XXX.XXX.XXX.XXX。我已配置 nginx 网络服务器,并且我的 springboot 后端在端口 8090 上提供服务。当前使用以下配置-

server {
listen 80;
gzip on;
server_name backend.example.com;
location / {
  root html/example;
  index index.html;
}
location /private {
  proxy_pass https://127.0.0.1:8090;
}
location ~* \.(gif|jpg|jpeg|png|js|css)$ { }
}

我的 Web 应用程序运行良好。但 RESTful API 调用仅在 URL 为http://XXX.XXX.XXX.XXX/api/view。 什么时候http://backend.example.com/api/view用作 url,返回以下 html 响应

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
 <html>

 <head>
 <title>Backend</title>
 <META name="description" content="Backend">
 </head>
 <frameset rows="100%,*" border="0">
 <frame src="http://XXX.XXX.XXX.XXX" frameborder="0" />
 <frame frameborder="0" noresize />
 </frameset>

 <!-- pageok -->
 <!-- 12 -->
 <!-- -->
 </html>

我希望在 backend.example.com/api/view 中提供 JSON 响应,就像 XXX.XXX.XXX.XXX/api/view 中的情况一样。我在 nginx 配置文件中尝试了许多不同的配置设置,但都不起作用。需要一些建议来解决这个问题。

答案1

因此,经过几天的尝试,我偶然找到了解决这个问题的方法。

将子域名转发到 IP 地址(无需掩码),并在 Google Cloud DNS 中创建 DNS 区域。在 Cloud DNS 中为子域名输入 A 名称记录。复制提供的自定义名称服务器并粘贴到您的域名托管站点名称服务器记录中。这将会非常有效。

相关内容