繁体   English   中英

Ubuntu 14.04 Apache + SSL服务器,如何配置Varnish

[英]Ubuntu 14.04 Apache + SSL server, how to configure Varnish

我在使用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>

使用您当前的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";
}

简短的回答,您无法使用SSL设置Varnish,因为Varnish不支持它。

你有2个选择

  1. 在Varnish前面设置Nginx(或其他一些SSL终结器),它充当反向代理并通过HTTP将请求转发给Varnish。

  2. 拆分当前Apache2服务器(支持SSL)和Varnish之间的流量。 端口80上的HTTP流量转到Varnish,端口443上的HTTPS流量转到Apache2。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM