NGINX Google Compute Engine 中从 Http 重定向到 https 的问题

Redirect from Http to https issue in NGINX Google Compute Engine

我们已经在 Stack Overflow 上尝试了其他解决方案,但它们对我们不起作用。

我们在将 域 url 从 http 重定向到 https 时遇到问题。

当我们打到http://example.com, it is not getting redirected to https://example.com的时候。我们还在 Google 云网络服务的负载均衡器中设置了 Google 托管 SSL。

我们正在使用 Google 云计算引擎来托管网站,并使用 Google 域来托管 url。除此之外,我们使用 NGINX 作为我们的网络服务器,并使用 Laravel 作为我们的框架。我们还联系了 Google 支持团队,但没有成功。

前端和后端负载均衡器配置:

下面是 NGINX 配置文件的代码。

NGINX 默认配置文件


server 
{
   listen 80;

    server_name example.in www.example.in;

    root /var/www/html/test;

    add_header X-Frame-Options "SAMEORIGIN";

    add_header X-XSS-Protection "1; mode=block";

    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    location / {

        try_files $uri $uri/ /index.php?$query_string;

    }

    location = /favicon.ico { access_log off; log_not_found off; }

    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {

        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

        include fastcgi_params;

    }

    location ~ /\.(?!well-known).* {

        deny all;

    }

}

我认为您的 NGINX 配置需要调整以侦听端口 443,并且您需要相应地获取 SSL 证书。 请参考:https://cloud.google.com/community/tutorials/https-load-balancing-nginx.

所以下面的配置真的解决了我的问题。

我刚刚在负载均衡器的前端配置中添加了一个新的端口 80 (Http) 配置以及端口 443 (Https)。

现在域 URL 正在通过安全连接从 http 重定向到 https。

请参考下面我的负载均衡器前端配置的截图。

谢谢 @JohnHanley 的回答 ;)