我正在为这个问题而烦恼,所以我真的很感激一些帮助:/
我将松节油与 Magento 1.7 CE 和 Varnish 3 一起使用,效果很好。现在我想添加 SSL 加密,但效果不太好。
SSL 加密由 Pound 终止(监听 443),然后将数据提供给 Varnish(监听 6081),最后提供给 nginx(8080)。问题是所有生成的 URL(产品链接、类别等)都是使用 HTTP 生成的,而不是 HTTPS。
我试图将不安全的基本网址设置为 https,但这完全破坏了我的网站(我有一个 404“嵌入循环”,它从未停止加载)。
SSL 卸载似乎可以工作,因为所有资源都使用 HTTPS 加载(如果我弄乱了 Magento 中的 SSL 卸载设置,我会收到有关混合内容的警告)。
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;
}
}
我真的没有想法:(如果需要,我很乐意提供有关我的配置的更多详细信息。