我正在尝试设置 Google 负载均衡器,但无法正常工作。它会产生 502 或 302 错误。
想要将 www 指向非 www,将 http 指向 https。
这是我的重写规则
SetEnvIf X-Forwarded-Proto https HTTPS=on
<VirtualHost _default_:80>
DocumentRoot "/opt/bitnami/apache/htdocs"
Include "/opt/bitnami/apps/letsencrypt/conf/httpd-prefix.conf"
<IfModule mod_proxy.c>
ProxyPass /.well-known !
</IfModule>
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^localhost
RewriteCond %{HTTP_HOST} !^[0-9]+.[0-9]+.[0-9]+.[0-9]+(:[0-9]+)?$
RewriteCond %{REQUEST_URI} !^/\.well-known
RewriteRule ^(.*)$ http://%1$1 [R=permanent,L]
<VirtualHost _default_:443>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^localhost
RewriteCond %{HTTP_HOST} !^[0-9]+.[0-9]+.[0-9]+.[0-9]+(:[0-9]+)?$
RewriteCond %{REQUEST_URI} !^/\.well-known
RewriteRule ^(.*)$ https://%1$1 [R=permanent,L]
Google 负载均衡器只有 1 个后端服务。后端配置为 HTTP,前端为 HTTPS,超时时间为 60 秒。
- 该实例可通过实例的 IP 和负载均衡器的 IP 访问
- www 到非 www 不起作用。
- Http 给出 404 错误。
- https 给出 502 / 302 错误。
重写规则都错了吗?
根据我的理解,您正在尝试在外部 HTTP(S) 负载均衡器中将 http 配置为 https,您似乎在 apache 中设置了 URL 重写规则,而不是根据HTTP(S) 负载的流量管理在 GCP 中重定向平衡器,重定向包括将所有 HTTP 请求重定向到 HTTPS 请求的功能,这是设置 http-https 重定向的示例