下午好,
我在AWS上的Auto Scaling组上运行Nginx进行Magento安装,标准3个实例。为了重定向流量,我使用带有SSL的负载均衡器,导致我的结构如下所示:
使用者>负载均衡器(端口443)>实例(端口80)
我在表mg_core_config_data中将我的数据库更改为要使用https的URL。
我认为正在发生的问题如下:
每次访问我的URL时,Load Balancer都会尝试获取正文内容,以便向我发送我请求的信息,这样,当我使用端口80时,Load Balancer到达我的实例并尝试加载Magento,数据库中的base_url重定向到https。通过此重定向,该过程将再次重复,因为我已重定向回https://并尝试再次获取端口80上的实例信息。我认为每个问题都在这个base_url中,我不能用端口80返回magento信息。
按照我的nginx配置:
server {
listen 80 DEFAULT_SERVER;
server_name _;
root /home/ubuntu/www/mysite;
index index.php index.html index.htm;
location / {
try_files $ uri $ uri / /index.php$is_args$args;
}
location ~ \ .php $ {
try_files $ uri /index.php = 404;
fastcgi_pass unix: /run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name;
fastcgi_params include;
fastcgi_cache CACHE;
fastcgi_cache_methods GET HEAD;
fastcgi_cache_valid 200 1m;
fastcgi_cache_bypass $ no_cache;
fastcgi_no_cache $ no_cache;
}
...
}
我通过https:
访问负载均衡器的错误任何人有任何建议或已经通过这个?
谢谢。
答案 0 :(得分:0)
查看您的说明,问题是您的实例认为他们是通过HTTP(而不是HTTPS)访问并重定向到HTTPS。
这不是ELB问题,ELB只是转发HTTP请求。它也不是EC2问题,因为EC2不能在HTTP级别上运行。
重定向要么是由于
- 你的nginx服务器
- 您的magento安装
通常,在Web服务器级别配置ssl重定向行为。
您共享的nginx配置代码段中没有重定向。您没有共享整个配置文件,因此请在您的nginx配置文件中查找重定向或301或302。还要在magento安装文件夹中调查其他nginx配置文件和.htaccess文件。
我不熟悉Magento,但Magento也可能导致http(s)重定向。 确保你设置了'外面的' url(映射到ELB的那个)作为您的基本URL,因为这将是来自最终用户的基本URL'观点。
在https://www.siteground.com/tutorials/magento/magento_ssl.htm上,您可以找到有关配置Magento for SSL的说明。尝试将基本URL设置为http://并激活“安全网址”可能值得尝试。选项。