2020年6月

通过 proxy_pass 代理的时候,如果文件比较大就会出现文件还没有传输完毕就被关闭的情况,只需要在 nginx 站点配置增加这个就可以解决了:

server {
    ...

    location / {
        ...
        proxy_buffers 8 1024k;  
        proxy_buffer_size 1024k;
    }
}

该绑定到哪个端口

这对于每一个编写服务器的程序员而言都是一个非常重要的考量。应该选择随机端口吗?该如何知道是否已经有其他的程序将某个端口宣为己有?

任何在 0~65535 之间的端口都可以使用,但是在选用之前别忘了一些重要的约定。

规则1: 不要使用 0~1024 之间的端口。

这些端口是作为熟知 (well-known)端口并保留给系统使用的。例如HTTP默认使用端口80, SMTP默认使用端口25,rsync默认使用端口873。绑定到这些端口通常需要root权限。

规则2: 不要使用 49000~65535 之间的端口。

这些都是临时 (ephemeral) 端口 。通常是由那些不需要运行在预定义端口,而只是需要一些端口作为临时之需的服务使用。它们也是后面所要讲到的连接协商 (connection negotiation) 过程的一部分。选择该范围内的端口可能会对一些用户造成麻烦。除此之外,1025~48999 之间端口的使用是一视同仁的。如果你打算选用其中的一个作为服务器端口,那你应该看一下 IANA 的注册列表,确保你的选择不会和其他流行的服务器冲突。

require 'socket'

# 该套接字将会绑定在环回接口,只侦听来自本地主机的客户端。
local_socket = Socket.new(:INET, :STREAM)
local_addr = Socket.pack_sockaddr_in(4481, '127.0.0.1')
local_socket.bind(local_addr)

# 该套接字将会绑定在所有已知的接口,侦听所有向其发送信息的客户端。
any_socket = Socket.new(:INET, :STREAM)
any_addr = Socket.pack_sockaddr_in(4481, '0.0.0.0')
any_socket.bind(any_addr)

# 该套接字试图绑定到一个未知的接口,结果导致Errno::EADDRNOTAVAIL。
error_socket = Socket.new(:INET, :STREAM)
error_addr = Socket.pack_sockaddr_in(4481, '1.2.3.4')
error_socket.bind(error_addr)

influence.jpg

影响力的武器

动物可能会因为看到某种颜色的羽毛而变得具有攻击性或听到某种叫声就对自己的天敌呵护有加。动物这种愚蠢可笑的机械反应在人类身上也有,当某一个触发特征出现时,我们会不假思索的做出相应的反应。之所以会这样,就是因为我们被难以观察到的影响力武器摆布了。

互惠

互惠原理认为,我们应该尽量以类似的方式报答他人为我们所做的一切。简单地说,就是对他人的某种行为,我们要以一种类似的行为去加以回报。如果人家施恩于你,你就应该以恩情报之,而不能不理不睬,更不能以怨报德。于是,我们身边这一最有效的影响力武器,就被某些人利用了。

承诺和一致

承诺和一致原理认为,一旦做出了一个选择或采取了某种立场,我们就会立刻碰到来自内心和外部的压力,迫使我们的言行与它保持一致。在这样的压力之下,我们会想方设法地以行动证明自己先前的决定是正确的。

社会认同

社会认同原理认为,在判断何为正确时,我们会根据别人的意见行事,尤其是当我们在特定情形下判断某一行为是否正确时。如果看到别人在某种场合做某件事,我们就会断定这样做是有道理的。

喜好

我们大多数人总是更容易答应自己认识和喜爱的人所提出的要求,对于这一点,恐怕不会有人感到吃惊。令人吃惊的是,有些我们完全不认识的人却想出了上百种方法利用这条简单的原理,让我们顺从他们的要求。

权威

权威所具有的强大力量会影响我们的行为,即使是具有独立思考能力的成年人,也会为了服从权威的命令做出一些完全丧失理智的事情来。

稀缺

“机会越少见,价值似乎就越高“的稀缺原理会对我们行为的方方面面造成影响,对失去某种东西的恐惧似乎比对获得同一物品的渴望,更能激发人们的行动力。

即时影响力

正常情况下,促使我们做出顺从决策的几个最常用的信息,都可以引导我们做出正确的决策,这就是为什么我们在决策时频繁、机械地使用互惠、承诺和一致、社会认同、喜好、权威以及稀缺原理的原因。每个原理本身都能够极为可靠地提示我们,什么时候说“是”比说“不”更加有利。但现实中,大量的、极易伪造的信息被人利用,他们借此引诱我们做出机械的反应并从中获利,我们不得不防。