Magento + Turpentine + SSL 仅生成 HTTP URL
Magento + Turpentine + SSL only generates HTTP URLs
我正在为这个问题而烦恼,所以非常感谢您的帮助:/
我将 Turpentine 与 Magento 1.7 CE 和 Varnish 3 一起使用,效果很好。现在我想添加 SSL 加密,但效果不佳。
SSL 加密由 Pound(监听 443)终止,然后数据被提供给 Varnish(监听 6081),最后提供给 nginx(8080)。问题是所有生成的 URLS(产品链接、类别...)都是使用 HTTP 而不是 HTTPS 生成的。
我试图将不安全的基础 url 设置为 https,但这完全破坏了我的网站(我有一个 404 "embed-loop" 从未停止加载)。
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;
}
}
我真的没有主意:( 如果需要,我很乐意提供有关我的配置的更多详细信息。
原来我有多个问题。
"location /" 的 nginx 配置:
location / {
try_files $uri $uri/ @handler;
}
location @handler {
rewrite / /index.php;
}
没有它,ajax 调用将无法工作。
Magento 配置中的 unsecure base url 需要包含 "https"
Turpentine 必须为 ESI 使用 HTTP URL,而不是 HTTPS。此提交中显示了必要的更改:
https://github.com/eth8505/magento-turpentine/commit/575f499382217f0013eaf097fd79ceddec0b4381
我正在为这个问题而烦恼,所以非常感谢您的帮助:/
我将 Turpentine 与 Magento 1.7 CE 和 Varnish 3 一起使用,效果很好。现在我想添加 SSL 加密,但效果不佳。
SSL 加密由 Pound(监听 443)终止,然后数据被提供给 Varnish(监听 6081),最后提供给 nginx(8080)。问题是所有生成的 URLS(产品链接、类别...)都是使用 HTTP 而不是 HTTPS 生成的。
我试图将不安全的基础 url 设置为 https,但这完全破坏了我的网站(我有一个 404 "embed-loop" 从未停止加载)。
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;
}
}
我真的没有主意:( 如果需要,我很乐意提供有关我的配置的更多详细信息。
原来我有多个问题。
"location /" 的 nginx 配置:
location / { try_files $uri $uri/ @handler; } location @handler { rewrite / /index.php; }
没有它,ajax 调用将无法工作。
-
Magento 配置中的
unsecure base url 需要包含 "https"
Turpentine 必须为 ESI 使用 HTTP URL,而不是 HTTPS。此提交中显示了必要的更改:
https://github.com/eth8505/magento-turpentine/commit/575f499382217f0013eaf097fd79ceddec0b4381