nsq 随录

nsq

nsq 官网
nsq
go-nsq

组件

nsqlookupd

是守护进程负责管理拓扑信息。客户端通过查询 nsqlookupd 来发现指定话题(topic)的生产者,并且 nsqd 节点广播话题(topic)和通道(channel)信息。

阅读更多

Kong 随记

端口

默认情况下 kong 监控一下端口

  • :8000 监听来自客户端的传入HTTP流量,并将其转发到上游服务。
  • :8443监听来自客户端的HTTPS流量。此端口具有与端口类似的行为:8000,但它仅需要HTTPS流量。可以通过配置文件禁用此端口。80008443 作为提供服务的端口,在正常的线上服务是需要修改成 80443 端口。使用 docker来启动会很方便做端口映射,而不需要对配置做修改
  • :8001 管理端口,提供管理 Admin API
  • :8444 Admin APIHTTPS 端口

在最开始的看 Kong 相关的时候,一下看到 4 个服务端口会有些焦虑,实际上只是只是两种服务提供了 HTTPHTTPS 的访问,8000和8443提供服务,8001和8443 用来管理。

阅读更多

理解 zabbix 配置

zabbix 配置看上去很复杂。 实际上是由于界面布局不合理,功能都是以展示为主,平铺直列。在直观状态下实际上是误导。

作为一个运维监控的工具。把我们自己需要的功能对应到 zabbix 上,就会变的很好理解。

基本需求,就是需要监控一群机器,并给出相应的可视化的表或者提示。 实际上可以按照层级关系列出,而不是按照 zabbix 界面的平铺。

阅读更多

firefox 安装 copper 插件

Firefox 升级后开始不支持三方协议的插件,调试 coap 协议使用的 Copper 插件在Firefox上不起作用。

需要做调试的时候,发现在关闭了 Firefox 更新的情况下 Copper 插件依然不起作用,于是想着重新安装,在插件商店里面居然已经找不到 Copper 这个插件了。官方已经将这个插件从 Firefox 的商店下架了。

解决方法

  1. Copper Github地址 https://github.com/mkovatsc/Copper
  2. Firefox RES 版 https://ftp.mozilla.org/pub/firefox/releases/52.0.2esr/

使用RES版是因为正常的版本从源码加载插件插件依然无法使用

安装方式

安装方式参考github的安装说明

  1. 从github拉取 Copper 源码 clone git://github.com/mkovatsc/Copper.git
  2. 创建一个名为 copper@vs.inf.ethz.ch 的文件 到firefox的 extensions 目录,路径如下
    • Windows: C:\Users\AppData\Roaming\Mozilla\Firefox\Profiles\xxxxxxxx.default\extensions\
    • Linux:~/.mozilla/firefox/xxxxxxxx.default/extensions/
    • MacOS:~/Library/Application Support/Firefox/Profiles/xxxxxxxx.default/extensions/
  3. 将第一步中clone的源码路径添加到第二步创建的文件中
  4. 在 firefox 中打开 about:config 设置 xpinstall.signatures.required 为 false
    5.. 重启 firefox 。

nginx在proxy_pass里使用变量

nginx server_name 配置文档: http://nginx.org/en/docs/http/server_names.html

在做 nginx 正则表达式 proxy_pass,nginx 反向代理不过去。 比如

1
2
3
4
5
6
7
8
9
server {
listen 80;
server_name ~^(?<user>.+)\.domain\.com$;
location / {
proxy_pass <http://$user.domain1.com>;
}

}

会报出如下错误

no resolver defined to resolve xxx.xxx

web端返回http 502 错误。

在Ngnix中如果用变量作为反向代理的地址时,容易出现“no resolver defined to resolve xxx.xxx”的问题

在 Nginx 0.6.18 后启用了 resolver 指令,在使用变量来构造某个server地址的时候一定要用resolver指令来指定DNS服务器的地址

所以在nginx的配置文件中的http{}部分添加一行resolver 8.8.8.8;

resolver 8.8.8.8;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
listen 80;
server_name ~^(?<user>.+)\.pay\.iov-smart\.net$;

location / {
# set $subdomain "";
# if ($host ~* "^(.+)\.pay\.iov-smart\.net$"){
# set $subdomain $1;
# }

resolver 8.8.8.8;
proxy_pass http://$user.pay.iov-smart.net:6001;
}
}

docker build openwrt 遇到的小问题

在使用 docker 编译 openwrt 遇到了两个坑,问题不复杂,却折腾了一天。

环境如下

  • Dockerfile 定义编译 openwrt 的编译环境
  • docker-compose.yml 定义变化 openwrt 的运行配置,主要是将代码目录 data 使用 -v 映射到容器中
  • /data 代码存放目录
阅读更多

docker-compose 中的 external-links

在使用服务时使用同一台服务器的 mysql 的 docker 服务。想到 external-links 这个配置。

按照文档的配置添加了如下配置

1
2
3
external_links:
- mysql_mysql_1:mysql

但是配置无论如何都不成功。

https://docs.docker.com/compose/compose-file/#external_links

官方文档相关的描述,

If you’re using the version 2 or above file format, the externally-created containers must be connected to at least one of the same networks as the service that is linking to them.

也就是说想要使用 external_links 是需要两个服务在同一个网络段,这里只提了一句,对第一次写配置文件的开发者非常的不友好。

阅读更多

minikube

​​

Minikube

  1. 安装minikube阿里修改版的

阅读更多

用 git 来 对letsencrypt 证书管理

在做 https 的时候,使用了 letsencrypt 的证书,letsencrypt 的证书 90 天更新一次,正常情况下,只有一个域名就很方便处理,写一个 crontab 就搞定了。

letsencrypt 出了泛域名后,泛域名只支持 1 级的匹配。当有多个子域名使用的时候,管理起来就很难受。

所幸的是,acme.sh 支持 deploy_hook 来自行调用一个 shell 脚本。所以用不到10行的代码,做了一个利用 git 来管理域名证书。

  1. 首先在acme.sh里面配置一个 git 的地址。
  2. 申请泛域名时同时申请泛域名的主域名
  3. hook 提交按照域名提交到不同的分支
  4. 线上对应的域名只需要配置一个 crontab 来定时拉 git ,重启服务。

思路虽然简单粗暴,这样做的好处是可以很清楚的在git上面看到证书的更新,同时更新也可以利用 gitlab 的 hook 通知到 钉钉。

阅读更多

android,不折腾

在最开始的时候是打算写 andoird 相关的内容

然而发现其实能够写的东西其实没那么多

对于 android 的一些玩机技巧,在 android 5 的时候

能够说的是什么呢,刷机 、supersu、 xposed 还有一些貌似黑科技的软件

当这些说完了后呢,只能推荐一些好用的软件

作为个人来讲,推荐软件是个很无趣的活

市面上有一大堆的软件推荐网站、公众号、APP

想要选一些小众的,最后会变成效率软件推荐集合

实际上对于刷机和root来说,热情过后就很无趣

在安全的角度来讲,所有需要手机授权root的软件都是流氓软件。

所有自称如何优化了官方软件,改进有多么大的,实际上都没有想象的那么大。

而以牺牲系统安全性为代价的特性,都是不值得的。

为什么你的安全软件需要root权限?

因为如果没有root权限就什么也干不了。

那既然没有root权限什么都干不了

你还要安全软件干什么呢。

曾经就有安全软件利用系统漏洞来标榜自己是不需要root权限的安全软件。

当时觉得很牛逼。真的是牛逼,不需要root系统。小白用户也能很好的使用的安全软件。

只需要一键开启就 ok 了。

实际上呢,作为一个安全软件,不是应该想办法来修复系统漏洞吗。

利用系统漏洞和流氓软件有什么区别。

android 5 的时候,很多地方做的不够好

我们需要去下载一些优化软件,但是现在已经不需要了

你所需要的东西大部分系统厂商都能够提供

你所追求的所谓的效率,仔细统计一下,其实是一个低频的需求

能够花20分钟去打王者,却不能花几秒钟来多做一步操作

人有时候会高估自己的时间价值,有时候又会低估

对于自己手机系统安全性不在意,随意乱给root权限

当然国产软件随意乱索取权限

系统的权限管理已经能够满足我们绝大部分人的需求。

我们在玩机的时候,玩的是什么呢,玩的是折腾

折腾呢很多的Rom,玩了很多的app

最后发现不折腾却是最好的选择

在安卓圈里有魔改系统看不清厂商出品

原始安卓看不起魔改系统

实际上大部分的原生安卓都是魔改的

总是需要这样的或者那样的插件支持

找桌面,找辅助插件,找同步通讯录,找备份

反正就是要吧系统上所有的自带app都要替换掉。

最后还要吧google全家桶也装上

管他有没有用

管他速度怎么样,能不能连上

信仰嘛

我也用google的输入法,chrome

但是 google 只是个商业公司

并不是所有的东西都香

看看 google 关掉的产品

read 、chat、G+ 等待

还是不要折腾,适当替换部分软件

不要用root类的软件

不要乱授权通讯录、电话等权限

好好用厂商提供的版本

节约的时间

去读读书、谈谈朋友

岂不美哉

ps. 看到很多公众号一句话换一行,在这里尝试一下,这种风格很适合杠。想到哪,杠到哪 。