Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redirect 使用带有两个IP-s的Google云负载平衡器重定向到HTTPS_Redirect_Load Balancing_Google Compute Engine_Gcloud - Fatal编程技术网

Redirect 使用带有两个IP-s的Google云负载平衡器重定向到HTTPS

Redirect 使用带有两个IP-s的Google云负载平衡器重定向到HTTPS,redirect,load-balancing,google-compute-engine,gcloud,Redirect,Load Balancing,Google Compute Engine,Gcloud,我正试图在Google负载均衡器的帮助下设置HTTPS。我创建了实例组、前端、后端、运行状况检查器和实际的负载平衡器。 我设置了两个前端,一个用于端口80上的HTTP,另一个用于端口443上的HTTPS。它们分别具有不同的IP-s 然后我将我的DNS指向我的IP的HTTPS(443)版本 当我将浏览器直接指向 但是,当我使用非安全协议时,我希望将用户重定向到安全连接。经过一些阅读,我了解到,实现这一点的唯一方法是直接从node.js应用程序(或nginx)进行。我要做的是检查req.header

我正试图在Google负载均衡器的帮助下设置HTTPS。我创建了实例组、前端、后端、运行状况检查器和实际的负载平衡器。 我设置了两个前端,一个用于端口80上的HTTP,另一个用于端口443上的HTTPS。它们分别具有不同的IP-s

然后我将我的DNS指向我的IP的HTTPS(443)版本

当我将浏览器直接指向

但是,当我使用非安全协议时,我希望将用户重定向到安全连接。经过一些阅读,我了解到,实现这一点的唯一方法是直接从node.js应用程序(或nginx)进行。我要做的是检查
req.headers['x-forwarded-proto']
是否为false,并重定向到
'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.
35.196.241.151是我的负载平衡器设置中侦听端口443的HTTPS IP示例

在我看来,重定向试图通过端口80访问我的安全HTTPS IP,但无法访问


我错过了什么

这就是我发现的

这是很多人都有的一个常见问题,看看这个问题线索,人们都在请求一个更简单的方法来设置它


我通过为HTTP和HTTPS前端设置静态IP而不是临时IP解决了这个问题。这样,它们都具有相同的IP,并且节点应用程序或nginx中的重定向正常工作

您是如何将两个前端分配到同一ip地址的?似乎不是possible@Rondo一个使用HTTP,另一个使用HTTPS协议。但首先,您必须在GCP的外部IP地址部分创建新的静态IP。这似乎不能反映典型web架构的现实情况,不是吗?如何设置DNS,使两个端口由相同的fqdn提供服务?循环DNS不仅仅是不理想的,在某些情况下,它可能会导致混乱。您不需要将DNS设置到任何端口,它只指向静态IP地址。我在使用nginx的实际服务器上设置了HTTP到HTTPS重定向。我知道DNS是如何工作的。让我这样说:我需要同一FQDN上的端口80和443都由一个负载平衡器处理。显然,您必须在两个单独的服务上设置两个IP地址:每个端口一个。如果这不是真的,plz将解释如何使用一项服务实现这一点。