首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在debian 10上使用apache配置varnish ssl

在debian 10上使用apache配置varnish ssl
EN

Stack Overflow用户
提问于 2020-06-19 23:23:37
回答 1查看 248关注 0票数 0

我已经配置了varnish,但问题是,在http协议上,我返回的公共文件夹/etc/www/html不是在虚拟主机中配置的文件夹,而varnish在https协议上没有启用,您能帮我一下吗?以下是我的vps中的文件:

虚拟主机:

代码语言:javascript
复制
<VirtualHost 127.0.0.1:8080>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example
    ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
    CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
    #SetEnvIf X-Forwarded-Proto https HTTPS=on

    <Directory /var/www/example >
            Options FollowSymLinks
            AllowOverride All
    </Directory>

  </VirtualHost>

  <VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com


    SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

    #RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}     

    ProxyPreserveHost       On
    ProxyPass               / http://127.0.0.1:80/
    ProxyPassReverse        / http://127.0.0.1:80/
 </VirtualHost>

ports.conf:

代码语言:javascript
复制
Listen 127.0.0.1:8080

varnish.service:

代码语言:javascript
复制
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,2048m

default.vcl

代码语言:javascript
复制
ackend default {
.host = "127.0.0.1";
.port = "8080";

}

链接应该是https和http al varnish on port 80 varnish report on door 8080 https report in http with proxy,我哪里错了?我的mods基于这篇文章How To Use Apache2 for SSL Termination With Varnish

感谢那些能帮助我的人。显然,公共站点当前没有启用varnish

EN

回答 1

Stack Overflow用户

发布于 2020-06-22 14:39:30

为了进行这项测试,我在教程页面上运行了这个示例,它似乎工作得很好。

如果您的主目录与示例中的不同,只需更改以下指令中的路径:

代码语言:javascript
复制
DocumentRoot /var/www/example
代码语言:javascript
复制
<Directory /var/www/example >

最后,这是确保您的证书放在正确位置的问题:

代码语言:javascript
复制
SSLCertificateFile      /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

您可能会更改这些路径,即实际证书和私钥的路径。

在使用以下命令重新启动systemd和您的服务之后,您应该可以开始工作了:

代码语言:javascript
复制
systemctl daemon-reload
systemctl restart apache2.service
systemctl restart varnish.service

调试

如果你有任何错误,阻止你运行这篇文章,请分享错误信息。在这一点上,还不是100%清楚是什么阻碍了你。

以下命令将列出所有侦听端口以及正在侦听该端口的Linux服务。请使用它来确定是否在正确的端口上绑定了正确的服务:

代码语言:javascript
复制
netstat -plnt

以下命令将显示有关HTTP请求、HTTP响应和Varnish中的内部处理的所有可用信息。它对主页("/")执行此操作。

代码语言:javascript
复制
varnishlog -g request -q "ReqUrl eq '/'"

最后,您可以调试Apache错误/访问日志。也许它们包含了更多的相关信息:

代码语言:javascript
复制
tail -f /var/log/apache2/access.log /var/log/apache2/error.log

您的Apache日志可能位于不同的路径。请相应调整。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62473461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档