Top Menu

enable http2 and keepalive

突然发现这个服务器的apache没有开启h2和keepalive,难怪总觉得打开页面特别慢

其实影响最大的还是keepalive,keepalive的核心就是复用连接,相当于是proxy里的多路复用,省去了重复tls握手的时间。

另外发现Cache-Control设置是no-cache,顺便把这个也改了

最后看了一眼,发现并没有真正开启http2,响应头里的h2是因为开启了mod http2后,http2的mod自带的config里自动设置的header所以看起来开了h2,实际在Protocol里就可以看到还是http/1.1,真正的h2在响应头里是没有这个upgrade字段的,主要是因为mpm_prefork不兼容http2,需要改成mpm_event+php-fpm,但是修改mpm_prefork又需要先禁用mod php,又是一个大工程。

加载时间对比

  • http/1.1 no-cache:20.75 s
  • http/1.1 + keepalive no-cache:5.52 s
  • http/2 no-cache:5.85 s
  • http/2 cached:667 s
  • http/1.1 + keepalive cached:681 ms

发现h2和keepalive其实并不能共存,突然醒悟,h2的tcp复用不就是keepalive么。。。并且从实际测试结果来看,http/2和http/1.1 + keepalive的加载时间非常接近。虽然h2宣称从本质上解决了拥塞问题,但是实际并没看出区别。

know more

enable http2

a2dismod php7.4 mpm_prefork a2enmod mpm_event apt install php-fpm libapache2-mod-fcgid -y a2enmod proxy_fcgi setenvif && a2enconf php7.3-fpm a2enmod http2 apachectl configtest service apache2 restart

Continue Reading 0

关于Postman无法post rawdata

在postman发现一个神奇的现象,同一段代码,两个入口,一个可以用php://input 接收到rawdata,另一个怎么都是null,$_POST[‘name’] 也是null,然而,$_GET[‘name’] 却可以收到内容,感觉就像是rawdata被故意丢弃了。

Continue Reading 0

新订阅链接新增余额查询api

有时无法获取订阅是因为账户余额不足,通过以下方法可以自助查询订阅链接的账户余额

API:Your-Subscribe-URL/balance

返回值:json

{ "code": "Your-Subscribe-Code", "path": "/balance", "msg": "use this url to look into your account balance.", "balance_plain": 4.01, "balance_cny": "¥4.01元" }

Continue Reading 0

如何使用纯docker获取域名证书

需求

  • 域名已经可以通过http或https访问
  • 不借助修改DNS验证域名所有权
  • 适应不同场景下重复使用的docker命令

实现

通过在域名根目录下生成一个随机文件验证域名所有权

docker run -it --rm \ -v "/etc/letsencrypt:/etc/letsencrypt" \ -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \ -v "/var/www/docs.minir.plus:/webroot" \ certbot/certbot certonly --webroot \ -w /webroot \ -d docs.minir.plus

Continue Reading 0

Powered by WordPress. Designed by WooThemes