Sockets 端口上的FastCGI与套接字上的FastCGI
我今天在Cherokee上设置Django(使用SCGI),我注意到您可以使用主机/端口组合或套接字在Web服务器和Django之间进行通信 在这件事上他们唯一要说的是 你选择的是一种偏好方式;由于权限问题,TCP套接字通常更容易使用 (顺便说一句,我在使用套接字执行此操作时遇到了权限问题,但在主机上却没有:)) 我模模糊糊地记得在我的系统编程课上套接字是如何工作的,但我真的很好奇这两者之间的有效区别是什么。任何时候有选择的时候,都会有人对这件事有意见,所以我希望得到这个。特别是,是否存在性能差异Sockets 端口上的FastCGI与套接字上的FastCGI,sockets,fastcgi,scgi,Sockets,Fastcgi,Scgi,我今天在Cherokee上设置Django(使用SCGI),我注意到您可以使用主机/端口组合或套接字在Web服务器和Django之间进行通信 在这件事上他们唯一要说的是 你选择的是一种偏好方式;由于权限问题,TCP套接字通常更容易使用 (顺便说一句,我在使用套接字执行此操作时遇到了权限问题,但在主机上却没有:)) 我模模糊糊地记得在我的系统编程课上套接字是如何工作的,但我真的很好奇这两者之间的有效区别是什么。任何时候有选择的时候,都会有人对这件事有意见,所以我希望得到这个。特别是,是否存在性能差
或者,如果这真的不重要,我只想得到一些确认,这样我就可以继续编程,忽略sysadmin-y的内容。UNIX套接字作为文件系统中的文件进行管理。您需要正确设置用户/组值和权限。它还必须位于您正在使用的任何jailroot中(使用postfix+mysql时的一个常见错误) 对于TCP套接字,只要绑定到>1000的端口,就不需要这样做
可以认为UNIX套接字的速度稍快一些,因为它没有网络协议,因此跳过了网络堆栈,但仅限于一台计算机。另一方面,TCP允许您连接到运行在不同主机上的服务。我认为真正的区别在于,如果您的连接速率非常高,并且连接时间很短,那么您可能会耗尽端口,因为使用TCP时,已用端口会在一段时间内处于“等待”状态。命名套接字则不然 如果我知道只有本地主机才会使用命名套接字,那么我会将其用于本地连接。但对于这个用途。。。。是的,这并不重要。不是性能方面的。如果你改变主意,以后很容易改变。如果使用该选项,请确保对TCP端口设置防火墙
同样,TCP套接字也是套接字。TCP套接字和unix命名套接字都是套接字。你对哪一个有问题?那是很久以前的事了,但我似乎记得必须将lighttpd指向文件系统中的.sock文件,这是一个命名套接字,对吗?呃,我需要多读一些这方面的东西。