我在使用Apache2和SSL的Ubuntu 14.04服务器上运行Magento。 我已经安装了Varnish,但不知道如何在不使用Nginx的情况下使用SSL进行设置。 这是我当前的vhost文件;
<VirtualHost *:443>
ServerName mysite.com
ServerAlias www.mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mysite.com
<Directory /var/www/mysite.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
SSLEngine on
SSLCertificateFile /home/ssl/mysite_com.crt
SSLCertificateKeyFile /home/ssl/mysite.com.key
SSLCACertificateFile /home/ssl/mysite_com.ca-bundle
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName mysite.com
RewriteEngine On
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=permanent]
</VirtualHost>
答案 0 :(得分:2)
使用您当前的Apache我会这样做:
将您的站点配置为侦听另一个端口,例如8888
<VirtualHost *:8888>
ServerName mysite.com
ServerAlias www.mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mysite.com
<Directory /var/www/mysite.com/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>
</VirtualHost>
然后将SSL配置为代理到Varnish
<VirtualHost *:443>
# what you had above plus the following:
RequestHeader set X-Forwarded-Proto "https"
ProxyPass / http://localhost:6081/
ProxyPassReverse / http://localhost:6081/
</VirtualHost>
您需要一些额外的模块:
sudo a2enmod headers proxy proxy_http proxy_html
最后配置Varnish后端以使用端口8888
backend default {
.host = "127.0.0.1";
.port = "8888";
}
答案 1 :(得分:0)
简短回答,您无法使用SSL设置清漆,因为Varnish不支持它。
您有 2 选项
在Varnish前面设置Nginx(或其他一些SSL终结器),它充当反向代理,并通过HTTP将请求转发给Varnish。
拆分当前Apache2服务器(支持SSL)和Varnish之间的流量。端口80上的HTTP流量转到Varnish,端口443上的HTTPS流量转到Apache2。