如何在redirect其他stream量时对特定url的http健康检查作出响应?

背景:我正在尝试在Google云平台上build立一个实例组。 实例组由许多nginx实例组成,其工作只是将传入的httpsstream量redirect到外部站点。 如果传入的stream量是http,它将被转换为https。

要使实例组工作,它必须响应健康检查请求(使用http或https协议)并返回200。

我遇到的问题是如何定义这样一个nginxconfiguration

这是我第一次剪掉 它只处理redirect

server { listen 80; listen 443 ssl; ssl on; ssl_certificate /etc/nginx/ssl/examples.pem; ssl_certificate_key /etc/nginx/ssl/examples.key; server_name incoming.examples.com; return 301 https://target.examples.com$request_uri; } 

我使用http协议将健康检查url设置为“/ _check”。 这是我第一次尝试:

  server { listen 80; location /_check { return 200 'no content'; } listen 443 ssl; ssl on; ssl_certificate /etc/nginx/ssl/examples.pem; ssl_certificate_key /etc/nginx/ssl/examples.key; server_name incoming.examples.com; return 301 https://target.examples.com$request_uri; } 

nginx服务器响应404。

然后我试图将location移动到另一个server定义:

  server { location /_check { return 200 'no content'; } listen 80; } server { listen 80; listen 443 ssl; ssl on; ssl_certificate /etc/nginx/ssl/examples.pem; ssl_certificate_key /etc/nginx/ssl/examples.key; server_name incoming.examples.com; return 301 https://target.examples.com$request_uri; } 

它给了我相同的结果。 这是我在访问日志中看到的。

 130.211.3.85 - - [18/Jan/2017:08:41:25 +0000] "GET /_check HTTP/1.1" 404 168 "-" "GoogleHC/1.0" 130.211.3.81 - - [18/Jan/2017:08:41:29 +0000] "GET /_check HTTP/1.1" 404 168 "-" "GoogleHC/1.0" 130.211.1.249 - - [18/Jan/2017:08:41:30 +0000] "GET /_check HTTP/1.1" 404 168 "-" "GoogleHC/1.0" 130.211.3.85 - - [18/Jan/2017:08:41:30 +0000] "GET /_check HTTP/1.1" 404 168 "-" "GoogleHC/1.0" 130.211.3.81 - - [18/Jan/2017:08:41:34 +0000] "GET /_check HTTP/1.1" 404 168 "-" "GoogleHC/1.0" 130.211.1.249 - - [18/Jan/2017:08:41:35 +0000] "GET /_check HTTP/1.1" 404 168 "-" "GoogleHC/1.0" 130.211.3.85 - - [18/Jan/2017:08:41:35 +0000] "GET /_check HTTP/1.1" 404 168 "-" "GoogleHC/1.0" 130.211.3.81 - - [18/Jan/2017:08:41:39 +0000] "GET /_check HTTP/1.1" 404 168 "-" "GoogleHC/1.0" 130.211.1.249 - - [18/Jan/2017:08:41:40 +0000] "GET /_check HTTP/1.1" 404 168 "-" "GoogleHC/1.0 

如果我恢复到第一次尝试的更改,并将健康检查更改为使用https (如以下屏幕截图所示),

在这里输入图像说明

我得到301。 在我看来, _check被重定义规则覆盖。

我的问题:如何修改nginx以符合要求?