繁体   English   中英

Jelastic Nginx http到https重定向

[英]Jelastic Nginx http to https redirect

我在Jelastic中有一个帐户,我想强制我的网站只能通过https进行工作。 我创建环境的nginx + PHP nginx的平衡器和启用SSL Jelastic(因为它描述这里 )。

每当我尝试设置301从http重定向到https都没有运气时。 使用mod_rewrite对我不起作用,我唯一得到的就是循环重定向。 Google没有帮助。

我真的需要劝告。 将提供任何其他信息。

提前致谢。

如果您使用的是Jelastic SSL,则意味着您在共享的Jelastic解析器上有SSL卸载=对服务器的所有请求都是http(不是http / https)。

您需要检查X-Forwarded-Proto标头,以识别最初是https的请求。

确实,当您启用Jelastic SSL(意味着您不能使用公共IP)共享解析器时,它将处理对服务器的所有请求,但在解析器和服务器之间的请求不是https。 因此,通过重定向,您尝试进行设置,服务器将传入的http请求重定向到https并将其发送回解析器,结果您得到了循环重定向。

您需要执行一些简单的步骤来解决此问题。 登录到仪表板,打开Nginx Balancer的设置

在此处输入图片说明

导航到/ conf下的nginx-jelastic.conf

在此处输入图片说明

并将代码添加到配置文件中:

# force https-redirects
if ($http_X_Forwarded_Proto = http) {
    return 302 https://$host$request_uri;
}

nginx的-jelastic.conf

完成配置后,请不要忘记按下“保存”按钮并重新启动Nginx。

(Всемпривет)使用域ssl,此变体可以正常工作

if ( $scheme = "http" ) { rewrite ^(.*)$    https://$host$1 last; }

接受的解决方案不适用于我的设置。 我必须将if语句更改为以下内容:

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

如官方的Nginx文档https://www.nginx.com/blog/creating-nginx-rewrite-rules#https中所述,您应该使用:

return 301 https://$host$request_uri;

效果也不错。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM