pza*_*or2 3 redirect load-balancing google-compute-engine gcloud
我正在尝试借助Google负载均衡器设置HTTPS。我创建了实例组,前端,后端,运行状况检查器和实际的负载平衡器。我为端口80上的HTTP和端口443上的HTTPS设置了两个前端。它们分别具有不同的IP。
然后,我将DNS指向IP的HTTPS(443)版本。
当我将浏览器直接指向https://example.com时,效果很好
但是,当我使用非安全协议时,我想将用户重定向到安全连接。经过一番阅读后,我了解到唯一的方法是直接从我的node.js应用程序(或nginx)中进行。我要做的是检查是否req.headers['x-forwarded-proto']为假并重定向到'https://' + global.config.hostname + req.url
global.config.hostname 被设定为 example.com
primoz@static-server[master]$ wget http://example.com
--2017-08-30 10:13:12-- http://example.com/
Resolving example.com... 35.196.241.151
Connecting to example.com|35.196.241.151|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-08-30 10:13:12 ERROR 404: Not Found.
Run Code Online (Sandbox Code Playgroud)
35.196.241.151是我的负载均衡器中侦听端口443的HTTPS IP的示例。
在我看来,重定向正在尝试通过端口80访问我的安全HTTPS IP,并且无法访问。
我在这里想念什么?
这就是我发现的。
这是很多人常见的问题,请看一下这个问题线程,人们在其中寻求一种更简单的方法来进行设置。
https://issuetracker.google.com/issues/35904733
我通过为HTTP和HTTPS前端设置静态IP而非临时IP来解决此问题。这样,它们都具有相同的IP,并且节点应用程序或nginx中的重定向可以正常工作。