nginx中单个http / https服务器块,具有上游https和上游http

我们目前的nginx安装程序处理http / https的解决scheme类似于这个答案中指定的解决scheme

nginx.conf

http { upstream backend { server backend.com } upstream backend_ssl { server backend.com:443 } } 

网站可用/ domain.conf

 server { listen 80; server_name www.domain.com location /a/update { proxy_pass http://backend; } } 

网站可用/ domain_ssl.conf

 server { listen 443 ssl; server_name www.domain.com location /a/update { proxy_pass https://backend_ssl; } } 

我想修改这个使用官方nginx文档中提到的解决scheme来使用单个http / https服务器块。 如何在上述场景中执行此操作,即使位置块url相同,http和https的proxy_pass指令参数也不相同。

使用$schemevariables。

 server { listen 80; listen 443 ssl; server_name www.domain.com location /a/update { proxy_pass $scheme://backend; } }