米饭粑 米饭粑
  • 首页
  • 好物推荐
    • 干货分享
    • 好物推荐
    • 免费资源
    • 非专业测评
  • 技术架构
    • Linux
    • HTTPS
    • Windows Server
  • 关于米饭
  • 教程&更多
    • 更多教程
    • 资讯新闻
    • 琐琐碎碎
    • 打赏米饭
    • 阿里云Ping
  • 友情链接
首页 › 技术架构 › 通过 Hitch 实现 Varnish-Cache 的 HTTP/2 支持

通过 Hitch 实现 Varnish-Cache 的 HTTP/2 支持

妙正灰
5年前技术架构阅读 3,044

前言

时至 2017年5月 Varnish-Cache 对 HTTPS和h2 的支持都是不可生产的,不过好消息是预计在 2017年秋季推出可以在生产环节运行 HTTPS和h2 的 Varnish-Cache 6。

不过在正式推出之前,我们可以通过 Nginx 再多一次代理来实现 h2 支持。但是如果我后端是 Apache Httpd,不想再安装一个 Nginx,那么这次我就介绍一个另一个代理工具 —— Hitch 来实现 h2。

介绍

Hitch 是 Varnish-Cache 的开发公司 Varnish Software 开发的基于 libev 的高性能 SSL/TLS 开源代理软件。

主要特性:
* 支持 NPN 或 ALPN 扩展实现 HTTP/2
* 支持 TLS 1.0, TLS 1.1 和 TLS 1.2
* SNI, 支持泛域名证书和非泛域名证书
* 自动 OCSP stapling 支持
* 支持PROXY协议将客户端IP /端口信号发送给后端
* 大规模安全支持,高达 15000 个侦听套接字和 50 万证书
* 支持平滑重新加载证书和监听端点

教程

目前只有 Debian (8)Jessie-Backports 是支持 Hitch1.4 和 OpenSSL 1.0.2 的长期支持的发行版,其他发行版要么 Hitch 太旧不支持 h2 特性,要么 OpenSSL 太旧不支持 ALPN 协议实现 h2,要么就不是 LTS 版本。

所以教程以 Debian 8 为例。SSL 证书通过 ACMETool 安装 Let’s Encrypt 证书。

升级系统

一、在 /etc/apt/source.list 中根据原来的镜像源添加jessie-backports,如果已经存在就不用添加了:

deb http://mirrors.digitalocean.com/debian jessie-backports main

二、 升级软件

apt-get update
apt-get -t jessie-backports upgrade -y

三、安装 OpenSSL 1.0.2

apt-get -t jessie-backports install openssl -y

安装 Varnish-Cache

Varnish-Cache 的安装请查看:

https://www.mf8.biz/varnish-wordpress-make-fast-1/

设置 验证端口

创建 /etc/varnish/acmetool.vcl 文件


backend acmetool {
   .host = "127.0.0.1";
   .port = "402";
}

sub vcl_recv {

    if (req.url ~ "^/.well-known/acme-challenge/") {
        set req.backend_hint = acmetool;
return(pass);
    }
}

在 /etc/varnish/default.vcl 末尾加入

include "/etc/varnish/acmetool.vcl";

添加代理端口

修改 /lib/systemd/system/varnish.service 在 ExecStart 末端加入 -a '[::1]:6086,PROXY'

例如:

ExecStart=/usr/sbin/varnishd -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,512m -a '[::1]:6086,PROXY'

修改 /etc/default/varnish 在 DAEMON_OPTS= 中添加 -a '[::1]:6086,PROXY'

例如:

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -s malloc,512m \
             -a '[::1]:6086,PROXY'"

输入以下命令重启 Varnish-Cache

systemctl daemon-reload
service varnish restart

Acmetool

一、安装 Acmetool,同样需要通过 Jessie-Backports:

apt-get -t jessie-backports install acmetool

二、设置 Acmetool

acmetool quickstart

选择

1) Let's Encrypt (Live) - I want live certificates

···

2) PROXY - I'll proxy challenge requests to an HTTP server

···

然后就是输入邮箱和一路 y 了

三、生成 dhparams 文件

openssl dhparam -out /var/lib/acme/conf/dhparams 2048

四、申请证书

acmetool want mf8.biz www.mf8.biz

将我的域名替换成你的就行。

设置 Hitch

修改 /etc/hitch/hitch.conf 文件

frontend = "[*]:443"
ciphers  = "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"

backend        = "[::1]:6086"
write-proxy-v2 = on
alpn-protos = "h2,http/1.1"
tls-protos = TLSv1.1 TLSv1.2

pem-file = "/var/lib/acme/live/www.mf8.biz/haproxy"

将最后一行中 www.mf8.biz 替换成你的就行。

重启 hitch 就大功告成了!

service hitch start
ACME Debian Hitch HTTP2 HTTPS Let's Encrypt Varnish Varnish-Cache
赞(1)
Varnish 5.1 & WordPress 带来内存级加速
上一篇
分享一下整理的早期 DZ、PW、DV 论坛源码和无心宠物插件,并附介绍
下一篇

评论已关闭

标签
Appnode Brotli CDN CentOS CentOS8 Debian DNS ECC ECS Ghost HTTP2 HTTPS IIS IPV6 Linux LiteSpeed MariaDB MySQL Nginx OLS OpenLiteSpeed OpenResty OSS PageSpeed PHP PHP7 QUIC Redis RHEL RHEL8 SSL TokuDB Ubuntu Windows Server 2016 Wordpress 云服务器 升级 域名 对象存储 微软 数据库 百度 笔记本 阿里云 阿里云ACP
归档
OLStack – v1.2.0 新增 ModSecurity 和 ACME 支持
2年前
696 0
Debian10 快速开启 TCP BBR 实现高效单边加速
2年前
3,044 4
在 Ubuntu/Debian 下安装 PHP7.3 教程
3年前
2,447 15
Nginx 上部署 TLS1.3、Brotli、ECC双证书实践
3年前
4,653 10
1
  • 1
Copyright © 2011-2022 米饭粑. Designed by nicetheme.
浙ICP备15006212号-1
  • 首页
  • 教程
  • 好物
  • 关于
  • 链接
  • 打赏
# 402 # # 113 # # 546 # # 548 # # 460 #
妙正灰
文科屌丝伪IT男一枚.
337
文章
385
评论
449
喜欢