如何设置一个GoogleVM(实例分组),https负载均衡w/CDN,让后端解析域名?

How to set up a Google VM (instance grouped), https load balanced w/CDN, so that the backend resolves the domain?

后端:"Bitnami WordPress with NGINX and SSL Stack for Google Cloud Platform" 来自市场。

我使用了这个指南:https://www.am22tech.com/google-cloud-cdn-wordpress/

我最终得到了一个可以正常工作的系统,如下所示:

我的域 ->(google 托管证书)-> CDN + 负载均衡器 -> 实例组 ->(http)-> 具有 bitnami 堆栈的虚拟机。

一切正常,而且速度似乎很快。在我的理解中最大的差距是如何告诉虚拟机它需要像原始域一样运行。

例如,在 nginx 服务器配置中,任何对 $host 的引用似乎都是 return 虚拟机的 IP 地址或类似的东西。

此外,在 wordpress 中,即使站点 URL 和 wordpress 地址正确显示,在很多地方域都被 IP 地址替换。这不是一个 wordpress 问题,因为我很确定我缺少一个更通用的解决方案,可能是 NGINX 或负载均衡器配置。我认为 PHP 检测到主机并将其传递给 wordpress,但我不清楚如何。

我在 google 文档的某处找到了关于如何手动将域分配给 VM 的参考资料,但不确定这是否是这里所需要的。

此外,我完全不清楚如何在虚拟机和负载均衡器之间设置 https,但只有一个 domain/ip 地址用于全局转发规则。也许是一个单独的问题。

这里是 Bitnami 工程师。如果您已经拥有域、证书和负载均衡器,则需要配置 WordPress 以将该域名用作应用程序的默认域。您将需要编辑 wp-config.php 文件并配置这些行

define('WP_SITEURL', 'http://DOMAIN/');
define('WP_HOME', 'http://DOMAIN/');

更多信息:https://docs.bitnami.com/google/apps/wordpress-pro/administration/configure-domain/

如果您还希望 NGINX 重定向您的域,无论您如何访问应用程序的信息,您都可以添加此配置行

  return 301 https://DOMAIN$request_uri;

在 /opt/bitnami/nginx/conf/bitnami/bitnami.conf 文件中

更多信息:https://docs.bitnami.com/google/apps/wordpress-pro/administration/force-https-nginx/

让负载均衡器通过 https 与我的 VM 通信真是太幸运了。一旦我开始工作,我就不必对 wp-config.php 进行任何更改。在这种情况下,我没有理会清漆,因为我认为它只支持 http。我希望 google 的 CDN 在缓存方面足够了,我可以在 wordpress 中尝试一个帮助插件。

为了将 http 重定向到 https,我按照 bitnami 说明将前端设置为指向相同静态 ip 地址的负载均衡器,然后在我的 nginx 服务器块中,我在 https 块中添加了重定向行(不是 http 块),因为 google 负载均衡器通过 https 与我的后端通信。 Google 将 http_x_fowward_proto 设置为 http,因此我检查它并在必要时重定向。

if ($http_x_forwarded_proto = "http") { return 301 https://$host$request_uri; }

bitnami 堆栈很棒,一切看起来都非常快!