我正在使用wordpress,我需要网页加速器。
我有SSL,我决定安装Varnish。
配置看起来像
请求->Apache(:443(->Varnish(:80(->Apache((:8080(。
一切正常,页面显示正确,我的标题是:
Accept-Ranges bytes
Age 0
Connection Keep-Alive
Content-Encoding gzip
Content-Length 19699
Content-Type text/html; charset=UTF-8
Date Thu, 29 Nov 2018 21:11:24 GMT
Keep-Alive timeout=5, max=100
Link <https://.../>; rel="https://api.w.org/"
Link
<https://test.manufakturakawy.com/?p=1>; rel=shortlink
Server Apache/2.4.18 (Ubuntu)
Vary Accept-Encoding
Via 1.1 varnish-v4
X-Pingback https://..../xmlrpc.php
X-Varnish 33072
问题是,"年龄"是0。
我已经安装了〔插件〕〔1〕,上面写着:
Cache Service Varnish caching service is running but is unable to cache your site.
默认.vcl文件几乎是标准的:
vcl 4.0;
# Default backend definition. Set this to point to your content server.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
# Happens before we check if we have this in cache already.
#
# Typically you clean up the request here, removing cookies you don't need,
# rewriting the request, etc.
}
sub vcl_backend_response {
# Happens after we have read the response headers from the backend.
#
# Here you clean the response headers, removing silly Set-Cookie headers
# and other mistakes your backend does.
if (beresp.ttl == 120s) {
set beresp.ttl = 1h;
}
}
sub vcl_deliver {
# Happens when we have all the pieces we need, and are about to send the
# response to the client.
#
# You can do accounting or modifying the final object here.
}
[1]: https://wordpress.org/plugins/varnish-http-purge/
你能支持我吗,我错过了什么?
我正在为https://example.com但是http://example.com不重定向到https://example.com
#/etc/httpd/conf.d/external-https.conf
<VirtualHost *:443>
ServerName example.com
ErrorLog /var/log/httpd/external-https_error.log
CustomLog /var/log/httpd/external-https_access.log combined
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/example.com.crt
SSLCertificateKeyFile /etc/pki/tls/certs/example.com.key
ProxyPreserveHost On
RequestHeader set X-Forwarded-Port "443"
RequestHeader set X-Forwarded-Proto "https"
ProxyPass / http://127.0.0.1:80/
ProxyPassReverse / http://127.0.0.1:80/
</VirtualHost>
#/etc/httpd/conf.d/internal-http.conf
<VirtualHost 127.0.0.1:8080>
SetEnvIf X-Forwarded-Proto https HTTPS=on
ServerName example.com
DocumentRoot /var/www/html/example
ErrorLog /var/log/httpd/internal-http_error.log
CustomLog /var/log/httpd/internal-http_access.log combined
</VirtualHost>
CentOS上的Apache 2.4.6版本7
Apache侦听端口8080
清漆5.2版
- Varnish后端侦听8080(vi/etc/varnis/default.vcl(
- Varnish params listen 80(vi/etc/Varnish/Varnish.params(
您可以阅读详细表格https://bash-prompt.net/guides/apache-varnish/
此更新将重定向http://example.com到https://example.com
#vi /etc/varnish/default.vcl
sub vcl_recv {
if (req.http.host ~ "^(www.)?example.com$" && req.http.X-Forwarded-Proto !~ "(?i)https") {
return (synth(750, ""));
}
}
sub vcl_synth {
if (resp.status == 750) {
set resp.status = 301;
set resp.http.Location = "https://" + req.http.host + req.url;
return(deliver);
}
}
sub vcl_hash {
if (req.http.X-Forwarded-Proto) {
hash_data(req.http.X-Forwarded-Proto);
}
}