我正在使用GCP,并且我想强制将我的所有网站流量从example.com
重定向到www.example.com
,所以我在Nginx配置中使用了一个简单的重定向,例如:
server {
listen 80;
server_name example.com;
return 301 https://www.example.com$request_uri;
}
server {
listen 80;
server_name www.example.com;
if ($http_x_forwarded_proto = "http") {
return 301 https://$host$request_uri; #permanent;
}
#Other configurations
}
(此Nginx配置位于我的实例中,该实例位于负载均衡器的后端服务中,其中负载均衡器的前端具有ssl证书)
但是现在GCP的默认http-health-check无法正常工作,因为它正在等待200
响应,而不是我正在响应的301
,
那么,如何使用http-health-check进行www.
重定向?
答案 0 :(得分:0)
我找到了它:),我将问题中此处提到的Nginx配置更改为以下内容:
server {
listen 80;
server_name www.example.com;
if ($http_x_forwarded_proto = "http") {
return 301 https://$host$request_uri; #permanent;
}
# to force adding 'www.' without bothering GCP health checks which connects with direct IP
if ($host = "example.com") {
return 301 https://www.example.com$request_uri; #permanent;
}
#Other configurations
}
这里的诀窍是检查$host
变量,而普通用户会键入example.com
打开网站,而GCP健康检查将使用直接IP进行连接,因此他们不会看到301
重定向?