我正在解决这个问题,所以我真的很感激一些帮助:/
我正在使用Turpentine和Magento 1.7 CE和Varnish 3,它工作正常。现在我想添加SSL加密,但效果不是很好。
SSL加密由Pound终止(在443上监听),然后将数据提供给Varnish(监听6081),最后提供给nginx(8080)。问题是所有生成的URL(产品链接,类别......)都是使用HTTP生成的,而不是HTTPS。
我尝试将不安全的基本网址设置为https,但这完全破坏了我的网站(我有一个404“嵌入循环”,它从未停止加载)。
SSL卸载似乎有效,因为所有资源都使用HTTPS加载(如果我搞乱了Magento中的SSL Offloading设置,我收到有关混合内容的警告)。
phpinfo告诉我有关HTTPS的信息:
[...]
_SERVER["HTTPS"] on
_SERVER["HTTP_SSL_OFFLOADED"] 1
[...]
我的配置:
Magento(我认为最重要的部分):
Auto-redirect to Base URL: No
Use Web Server Rewrites: Yes
Unsecure Base URL: http://myurl.com
Secure Base URL: https://myurl.com
Use Secure URLs in Frontend: Yes
Offloader Header: HTTP_SSL_OFFLOADED
镑:
ListenHTTPS
Address 0.0.0.0
Port 443
Cert "/path/to/my/cert.pem"
xHTTP 2
RewriteLocation 1
Ciphers "RC4:!SSLv2:!ADH:!aNULL:!eNULL:!NULL:!LOW:!EXP"
AddHeader "Ssl-Offloaded: 1"
End
Service
BackEnd
Address 127.0.0.1
Port 6081
End
End
Varnish使用Turpentine-Config(在没有SSL的情况下可以正常工作)
nginx的:
server {
listen 8080 default_server;
root /var/www/mysite.at;
index index.php;
server_name _;
location / {
try_files $uri $uri/ /index.php;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS on;
}
location ~ /\.ht {
deny all;
}
}
我真的没有想法:(如果需要,我很乐意提供有关我配置的更多详细信息。
答案 0 :(得分:1)
事实证明我有多个问题。
nginx配置为“location /”:
location / {
try_files $uri $uri/ @handler;
}
location @handler {
rewrite / /index.php;
}
如果没有,那么没有ajax调用可以工作。
Magento配置中不安全的基本网址需要包含“https”
Turpentine必须使用ESI的HTTP URL,而不是HTTPS。此提交中显示了必要的更改:
https://github.com/eth8505/magento-turpentine/commit/575f499382217f0013eaf097fd79ceddec0b4381