#584 解释解释什么叫 “包容性命名”

2022-04-02

开发者想必都有耳闻,过去一两年间,因为一些美国政治风波的影响,各大社区都被政治正确问题所困扰,然后有一些相关改名的操作。
PS: 连黑人牙膏(高露洁旗下)都改名 “好来牙膏” 了。

最著名的可能就是 GitHub 中的默认主干分支从 master 改成 main,然后很多项目宣布将主从表述由 master/slave 改成 primary/replica,黑名单 Blacklist 改叫 Denylist 或者 Blocklist。

我最近听说有个叫包容性命名促进会的组织(Inclusive Naming Initiative)。
https://inclusivenaming.org/

他们列了一个清单,将开发过程中常用的一些有冒犯性的词,按照冒犯级别分三类,然后还给出来一些他们建议的替换词。

#575 HTTP 超时相关的疑问

2022-02-25

今天发现一个奇怪的现象,相同的代码在 CentOS 7 服务器上发起 HTTP 请求 3 秒之后超时,报 “TimeoutError: [Errno 110] Connection timed out”。
在我本地就按我们的定义的超时时间 5 秒超时,报 “tornado.simple_httpclient.HTTPTimeoutError: Timeout while connecting”。

#574 Nginx proxy-set-header

2022-02-22

线上环境 HTTP 服务有报获取不到 Host 信息。应该是域名,但是拿到的是 backend 这样的名字。

我第一反应肯定是 Nginx 的配置问题,我印象中 Nginx 给 upstream 转发的请求就会设置 Host 为 upstream 名称。

但是我检查了 Nginx 的配置 (nginx.conf), 在 http 这一层的配置中有 proxy_set_header Host $http_host;

不过搜索 proxy_set_header 的时候发现,在 server 这一层设置了 proxy_set_header X-Forwarded-For $remote_addr;, 这个头在 http 这一层也设置了,没必要在设置的。

我就想到,会不会下层设置头会覆盖上一层的所有头设置。

在 Nginx 文档 (proxy_set_header) 中查到:

Allows redefining or appending fields to the request header passed to the proxied server.
The value can contain text, variables, and their combinations.
These directives are inherited from the previous configuration level if and only if there are no proxy_set_header directives defined on the current level.

当本层没有 proxy_set_header 指令的时候,才会继承上一级的 proxy_set_header 指令。

将 server 层重复的这个设置拿掉,果然就好了。

#573 我的中年危机

2022-02-21

已经 30 几了,生活一团糟。

如果能有些事业,好歹有一个方面可以让我感受到自己的价值,至少可以分散一下注意力。可是,也没有,反而也是个令人糟心的事,让我常有髀肉复生之叹,感觉人生就要荒废。

我感觉我在一个漩涡中无法自拔,想逃离却又不能逃离。我不知道该怎么做。我时常想起《阿甘正传》中珍妮的祈祷。

这个可能就是中年危机的前兆吧!