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 支持团队,但没有成功。
前端和后端负载均衡器配置:
- PHP 框架 - Laravel V8
- 计算引擎 - Debian 10 Buster
下面是 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 的回答 ;)
我们已经在 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 支持团队,但没有成功。
前端和后端负载均衡器配置:
- PHP 框架 - Laravel V8
- 计算引擎 - Debian 10 Buster
下面是 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 的回答 ;)