Nginx 1.13.9 HTTP/2 server push 介绍

2018年2月20日发布的NGINX 1.13.9开始支持HTTP/2服务器推送功能. HTTP/2规范中定义的服务器推送允许服务器抢先将资源推送到远程客户端,预计客户端可能很快会请求这些资源.通过这样做,您可以在页面加载操作中将RTT(往返时间 - 请求和响应所需的时间)减少一个RTT或更多,从而为用户提供更快的响应. 配置HTTP/2 server push server { # Ensure that HTTP/2 is enabled for the server listen 443 ssl http2; ssl_certificate ssl/certificate.pem; ssl_certificate_key »

月杪 月杪 on Nginx

用于查看git代码库的终端界面工具

我们查看一个复杂项目Git提交记录的时候通常都需要借助GUI程序才能比较方便,因为直接使用终端查看的话难度会随着项目复杂度的提高而指数级提升. 所以诞生了git-fork, Sourcetree等GUI工具. 但目前有了GRV这样的终端查看工具,比git自带的查看方法方便了很多甚至不输上面的GUI工具. »

月杪 月杪 on Git

Git配置非22端口访问

有时候我们需要通过非22端口连接git(比如你遇到了一个以为更换了ssh端口就会给服务器安全带来突飞猛进提升的CTO),同时又不想使用GitHub的时候因为更改了默认端口带来麻烦. 其实很简单,通过.ssh下的config文件就可以搞定. 很简单的通过config做一个映射(一般不会存在这个文件,自己新建一个就行) # 映射一个别名 host git.example.com hostname git.example.com port 2222 像上面这样就成功的在使用类似 git clone git@git.example.com:xxx/xxx.git 命令的时候走2222端口,而当你使用类似 git clone git@github.com:moonagic/Jekyll.git 命令的时候走默认的22端口. »

月杪 月杪 on Git

年终总结

去年忘了写年终总结,今年都到2月了还是写一下. 今年算是搬进新家的第一年 第一次拥有了一个属于自己的书房.自己在网上买了书架和书桌送到家然后自己看着说明书来安装,感觉挺不一样的. 给自己买了垂涎已久的P2415Q显示器 体验了一番24寸4k虽然比不上MacBook Pro原装显示器但依然远远比普通显示器的显示效果好很多.只是玩游戏的话完全带不动. 心水了一段时间的Amplifi,最终还是买了 买Amplifi以前是用的网件的WNDR4300和去年比较火的斐讯,都自己刷成了OpenWRT.不过使用了Amplifi以后再也不想使用其他的路由器了. 路由器是放在书房的,由于位置的问题在客厅和阳台几乎就没有什么型号了.在更换了Amplifi加上配套的扩展器以后客厅和阳台也能一直跑满100M带宽了.(实际内网可以跑到接近1000M,不过目前使用的宽带是100M) 去了台湾 十一长假提前请了3天假,去台湾放松了8天.不得不说在不同的文化下差距真的好大. 买了一块树莓派 当作国内的DNS缓存服务器.很庆幸并没有像其他人那样买来最后只能吃灰. 卖掉了旧房子 算了算差价,比了比毕业后拿的工资感觉不想上班了. 将使用了快3年的iPhone 6换成了iPhone 8+ 去年的iPhone7买给了老婆,今年打算还是犒劳自己. 有点后悔没有买iPhone X,不过已经足够了. 买iPhone6的时候感觉如果不是一定要续航或者一定要大屏那么直接买4.7寸的,现在感觉如果不是一定要小屏那么直接买5.5寸的. 用惯了5.5寸以后再也回不到4.7寸了. »

月杪 月杪 on 心情

通过travis自动将Jekyll持续部署到服务器上

迁移回Jekyll以后更新博客就成了比较麻烦的事情,Jekyll处于本地每次发布就需要在本地生成静态文件以后上传到服务器上. 在很久以前这一系列的工作只能手动完成,不过travis-ci给了我们提供了更方便高效的持续集成解决方案. 首先 我们到travis-ci使用Github帐号登录,授权完成后进入个人页面开启你需要进行持续集成的项目,就像下图中 添加.travis.yml文件 在项目中新建.travis.yml, language: ruby rvm: - 2.3.3 before_install: script: after_success: 由于Jekyll是ruby环境下的框架所以language项填写的ruby, before_install可以视为正式执行前的准备工作, script则为正式执行阶段, after_success为执行成功后的处理. 执行 在travis启用相应项目并且在添加.travis.yml文件提交推送到Github后travis-ci会很快开始运行. 并且可以看到类似下图中这样的控制台执行过程, 成功后的部署 执行成功后可以通过ssh以及scp将生成好的静态文件部署到服务器上.不过不管是直接在.travis.yml中写服务器密码还是上传私钥都相当危险. travis-ci专门为私钥的加密准备了一套方案. ssh-keygen -t »

月杪 月杪 on Jekyll

博客从Ghost切换到Jekyll

快4年前开始用Ghost写博客,当时觉得Ghost最大的优势就是支持Markdown格式.相比Wordpress来说不需要安装mysql和php同时和Hexo以及Jekyll相比也有强大的后台. 然而在发展了几年以后Ghost迭代到了1.0版本, 在1.0版本中出现了以下几个特点: 开始推荐使用mysql数据库,仍然能够指定为sqlite但是支持肯定越来越薄弱. 改进了编辑器,虽然在一定程度上仍然兼容Markdown但是还是给人一种不舒服的感觉. 开始推广自己的CL工具,不能像1.0版本以前那样直接通过npm安装和运行.并且这玩意还没做好,运行和更新非常容易报错. Ghost默认主题是一款杂志主题而非博客,也从侧面反应出他们的着重发展方向.marketplace中也没几个支持1.0的博客主题,并且90%为收费主题. 所以一直坚持使用0.11.12长期支持版, 然而长期支持版其实就是长期没支持慢慢就淘汰版本.. 斟酌再三决定换回Jekyll. 并且很幸运还找到了和Ghost 0.11.12默认主题几乎一致的Jekyll主题jekyll-casper. »

月杪 月杪 on Jekyll

AmpliFi

家里的路由器从网件的WNDR4300换成UBNT的AmpliFi HD已经过去3个月了,它拥有着”你这辈子买的路由器加起来都没它贵”的价格以及绝对对得起这个价格的品质. AmpliFi HD是企业级网络设备供应商UBNT在2016年10月推出的Mesh Wifi系统.也是该厂推出的第一款家用路由设备,并为之创立了一个新的品牌AmpliFi. 主要参数 1 个千兆 WAN 接口 4 个千兆 LAN 接口 1 个 USB-A 接口 IEEE 802.11n IEEE 802.11g IEEE 802.11b IEEE 802.11.ac »

月杪 月杪 on 心情

利用iodine为Ocserv提供本地DNS服务

起因 尝试在同一台Linux上同时安装Ocserv和Dnsmasq,并将Ocserv的DNS配置指向Dnsmasq,然而不管是走内网IP还是外网IP都完全不工作.发邮件询问Ocserv作者本人收到的回复也是建议我检查Dnsmasq的配置.鬼都知道Dnsmasq配置不可能有问题啦! 后来猜测是虚拟网卡的原因,于是尝试自己建立内网DNS隧道来搞定它. 安装及配置 # 安装 apt-get install iodine # 启动 nohup iodined -f 10.10.10.10 gov.com & 启动后通过ifconfig能查看到已经生成了名为dnsx的虚拟网卡,地址为10.10.10.10. dns0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1130 inet 10.10.10.10 netmask 255.255.255.224 »

月杪 月杪 on Ocserv, SSL

使用LetsEncrypt签发多域名ECC证书

克隆certbot cd /opt git clone https://github.com/certbot/certbot.git 配置openssl.cnf cp /etc/ssl/openssl.cnf /opt/certbot/ vi openssl.cnf # 在[ v3_req ]标签下添加 subjectAltName = @alt_names [ alt_names ] DNS.1 = example.com DNS.2 »

月杪 月杪 on SSL