【问题标题】:Access GCP VM via HTTPS通过 HTTPS 访问 GCP 虚拟机
【发布时间】:2022-01-20 22:09:17
【问题描述】:

大家好,我有一个通过 Nginx 和 Gunicorn 运行 Django REST API 的 GCP VM(Debian 10 映像)。因为我需要通过 HTTPS 调用 API,所以我创建了一个负载均衡器,它带有 HTTPS 前端和与后端 VM 的 HTTP 连接。当我调用负载均衡器域时,它通过 HTTPS 连接到 VM。但是,显示的是标准 NGINX 消息,而不是 Django REST API。如果我直接调用VM的IP,没有负载均衡器,它仍然显示Django REST API。

如何通过 HTTPS 通过负载均衡器访问 Django REST API?目前显示 NGINX 标准消息,这不是预期的行为。

如果还有其他易于实现的方式通过 HTTPS 访问 VM 而无需负载均衡器,我会感兴趣。

干杯

【问题讨论】:

    标签: django nginx google-cloud-platform https


    【解决方案1】:

    根据描述,您的负载平衡器正在将 HTTPS 请求转换为 HTTP,因此 VM 收到 80 个 HTTP 请求并显示 NGINX 页面。
    如果您必须有负载均衡器,您可以将后端更改为使用 HTTPS,或者您可以移除负载均衡器并在 VM 上打开端口 443 以直接访问。
    您还可以更改 API 以侦听 HTTP,但确保端口 80 不公开可见。

    【讨论】:

    • 当我直接访问 VM 时,它会显示 Django API,这是预期的行为。当我通过负载均衡器访问 VM 时,它会显示 NGINX,这是无意的。所以我的问题是为什么当我通过负载均衡器打开它时,VM 显示的是 NGINX 而不是 Django API?以及如何修复它,以便 VM 在通过负载均衡器打开时显示 Django API?
    • 由于您设置负载均衡器的方式,就负载均衡器而言,看到 NGINX 页面预期的行为。您已经告诉它接收传入的 HTTPS 请求并将它们转换为 HTTP 并且 VM 通过显示 NGINX 页面正确响应。将您的后端协议更改为 HTTPS 以通过负载平衡器查看您的 API。
    猜你喜欢
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多