将对 ELB 的 HTTP 请求重定向到多个域的 HTTPS

Redirecting HTTP requests to ELB to HTTPS for multiple domains

我有一个与此非常相似的问题post:

我正在使用 NGINX,我想将所有发往我服务器的 HTTP 请求重定向到 HTTPS。上面 post 中的回答可以通过以下方式实现:

if ($http_x_forwarded_proto = 'http') {
    return 301 https://example.com$request_uri;
}

但是,我想对此进行扩展:
-如果用户转到 http://example.com, I want them to be redirected to https://example.com.
-如果他们去 http://www.example.com I want them to be redirected to https://www.example.com.
-如果用户转到http://some-sub-domain.example.com, I want them to be redirected to https://some-sub-domain.example.com

我想要实现这一点的原因是我从同一台服务器为多个域提供服务。我的每个客户都有自己的子域,但是我的应用程序是从相同的服务器提供服务的。

非常感谢任何帮助或指导!! :)

原来这很简单,可以通过使用 NGINX $host 变量来完成:

if ($http_x_forwarded_proto = 'http') {
    return 301 https://$host$request_uri;
}