带有清漆和Nginx作为SSL终端的Magento 2-无限重定向

带有清漆和Nginx作为SSL终端的Magento 2-无限重定向,ssl,nginx,magento2,centos7,varnish,Ssl,Nginx,Magento2,Centos7,Varnish,有没有Nginx/Varnish/SSL专家?我已成功配置CentOS7服务器并运行Magento 2.17。然后我决定通过SSL运行所有内容,并让Varnish仍然缓存页面 因为Varnish不处理SSL,所以我重新配置了Varnish和Nginx以终止SSL。Nginx当前配置为侦听端口443并将请求传递到端口8081上的Varnish。Varnish然后应该提供查询并将其返回到侦听端口8080的Nginx。当我发出HTTPS请求时,nginx成功地将其传递给Varnish,然后从日志中可以

有没有Nginx/Varnish/SSL专家?我已成功配置CentOS7服务器并运行Magento 2.17。然后我决定通过SSL运行所有内容,并让Varnish仍然缓存页面

因为Varnish不处理SSL,所以我重新配置了Varnish和Nginx以终止SSL。Nginx当前配置为侦听端口443并将请求传递到端口8081上的Varnish。Varnish然后应该提供查询并将其返回到侦听端口8080的Nginx。当我发出HTTPS请求时,nginx成功地将其传递给Varnish,然后从日志中可以看出,它重定向了20次,然后浏览器将其切断并显示消息“页面未正确重定向”

这可能是一些小而愚蠢的东西,我没能发现,第二双眼睛真的很感激

test.com域的My nginx test.conf文件:

##代理服务器终止ssl,循环到Varnish HTTP->nginx HTTPS
服务器{
监听443sslhttp2;
服务器名称test.com;
子过滤器“http://”“https://”;
子过滤器关闭一次;
##SSL配置
ssl_证书/etc/letsencrypt/live/test.com/fullchain.pem;
ssl_certificate_key/etc/letsencrypt/live/test.com/privkey.pem;
#代理传递到清漆
地点/{
代理通行证http://127.0.0.1:8081;
proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
代理集头X转发主机$Host;
代理设置头主机$Host;
代理集头X方案https;
代理集头X-Real-IP$remote\u addr;
代理集头X转发协议https;
代理集头X转发端口443;
代理\u集\u头X-安全开启;
}
}
服务器{
听8080;
服务器名称test.com;
access_log/var/log/nginx/access.log main if=$writelog;
error\u log/var/log/nginx/error.log error;
if($bad_client){return 444;}
设置$MAGE_ROOT/home/test/public_html;
根$MAGE_根/pub;
地点/{
try_files$uri$uri//index.php$is_args$args;
}
##处理php文件(严格规则,定义要执行的文件)
location~(index | get | static | report | btNenBhQtLNu | opcache | u gui | 404 | 503)\.php${
try_files$uri=404;
##特定的安全性和兼容性头
始终通过“测试”添加_标题X-Config-By;
添加_头X-处理时间$request_时间始终;
添加标题X-Request-ID$Request\u ID始终;
添加_头严格传输安全性$hsts_头始终;
添加_头X-UA-兼容“IE=Edge,chrome=1”;
始终添加标题链接“rel=\“canonical\”;
##php后端设置
fastcgi_pass 127.0.0.1:9000;
fastcgi_index.php;
包括fastcgi_参数;
fastcgi保持连接;
#微型车
fastcgi_no_cache$no_cache;
fastcgi_cache_绕过$no_cache;
fastcgi_缓存微缓存;
fastcgi|u cache|u key$scheme |$host | search |$arg|q;
fastcgi_缓存_有效200 301 302 2h;
fastcgi\u缓存\u使用\u过时更新错误超时无效\u头http\u 500;
fastcgi_pass_头集Cookie;
fastcgi_pass_头Cookie;
fastcgi_ignore_头缓存控制过期设置Cookie;
#微型车
}
##阻止其他未定义的php文件、可能的注入和随机恶意软件挂钩。
位置~*\.php${return 404;}

}
看起来您有一个重定向被发送到
https://
,因为您的后端不知道它正在https上服务(可能是您将其配置为,因此它会生成https链接等)。你需要说服Magento它在HTTPS上,即使看起来不是。在Apache的类似设置中,我使用:

<If "-R '192.0.0.1'">
     SetEnvIfNoCase X-Forwarded-Proto https HTTPS=on
</If>

SetEnvIfNoCase X-Forwarded-Proto https https=on
不确定NGINX的语法是什么,但希望这能让您走上正轨