端口与插座上的FastCGI

Xio*_*iov 19 sockets fastcgi scgi

我今天在Cherokee上设置了Django(使用SCGI),我注意到Django文档说你可以使用主机/端口组合或套接字来进行webserver和Django之间的通信.

他们唯一要说的就是这个问题

你选择的是一种偏好; 由于权限问题,TCP套接字通常更容易.

(顺便说一句,我使用套接字执行此操作时遇到了权限问题,但是没有使用主机:).)

我依旧记得套接字是如何从我的系统编程类中运行的,但我真的很好奇两者之间的有效区别.任何时候都有选择的东西,有人对此事有意见,所以我希望得到那个.特别是,有任何性能差异吗?

或者,如果它真的没关系,我只想要一些确认,所以我可以继续我的编程并忽略这个系统管理员的东西.

ebo*_*ebo 40

UNIX套接字作为文件系统中的文件进行管理.您需要正确设置用户/组值和权限.它也必须在你正在使用的任何jailroot(使用postfix + mysql时常见的错误).

只要绑定到端口> 1000,就不需要为TCP套接字执行此操作.

UNIX套接字可以被认为稍微快一些,因为它没有网络协议,因此跳过网络堆栈,但仅限于一台机器.另一方面,TCP允许您连接到在不同主机上运行的服务.

  • 端口> 1023实际上 (23认同)

Tho*_*mas 7

我认为真正的区别在于,如果你的连接速率非常快,你可以用完端口,因为使用过的端口会在TIME_WAIT状态下使用TCP一段时间.命名套接字不是这样.

如果我知道它只会被本地主机使用,我会使用命名套接字进行本地连接.但是对于这个用途......是的,这不重要.不是表现明智或其他方面.如果你改变主意,以后很容易改变.如果使用该选项,请确保防火墙TCP端口.

而且,TCP套接字也是一个套接字.