1
mongodb 2015-07-04 12:29:48 +08:00
最开始接触Nginx+PHP-FPM的时候教程都是127.0.0.1:xxxx 突然有一天都在用socket方式了,理由大致类似。
|
2
kn007 2015-07-04 12:30:32 +08:00
早就用socket了
mysql php redis memcached 全部都是用socket |
3
kn007 2015-07-04 12:31:21 +08:00
端口毕竟tcp,大流量毕竟还是过多动作了。
|
4
tonyluj 2015-07-04 12:57:50 +08:00
|
5
fripSide 2015-07-04 13:06:19 +08:00
怎么用 Unix Socket访问localhost?
|
6
ryd994 2015-07-04 13:26:34 +08:00
毕竟即使是lo,还是会有TCP栈处理,握手流控到少不了
lo也不是完全没用,在多个chroot的情况下,socket的设置比较麻烦 小负载没什么区别 @fripSide socket是特殊文件,在配置里指定一个路径即可 一般在/run /var/run 或者 /var/lib/ 下,你参考其他软件就好,另外大多数配置里会有默认选项可以参照 注意设置好权限 |
7
SoloCompany 2015-07-04 13:30:24 +08:00
1. unix pipline / domain socket 应该都是同意回事
2. java 支持不佳 3. windows 不支持,跨平台应用编写不方便 所以,如果不是证明这个造成了瓶颈,没必要折腾 |
8
noli 2015-07-04 13:46:43 +08:00
unix socket 直接就不是 TCP/IP 协议栈吧……代价肯定小得多。
|
9
way2exluren 2015-07-04 13:50:10 +08:00
unix domain socket属于进程间通信。
127.0.0.1是标准协议流程。 上面的不过协议栈。 |
10
Bluecoda 2015-07-04 16:56:55 +08:00
一直都是unix socket,也很早就知道unix socket比tcp socket的性能要高很多
|
11
yuankui 2015-07-04 18:52:21 +08:00
差别右多大?
|
12
humiaozuzu 2015-07-04 18:56:14 +08:00
局域网间的机器怎么办
|
13
fripSide 2015-07-04 19:14:19 +08:00
@ryd994 我配置saltstack之类的貌似用到过sock文件。但是我想知道题主说的这个,怎么在浏览器上访问的localhost上使用Unix Socket ?
|
14
decken 2015-07-04 19:16:40 +08:00
apache哭晕在厕所,2.4.7之后的版本才支持该特性
|
15
realpg 2015-07-04 22:00:36 +08:00
真不敢相信 @Livid 大神才知道这个……学unix socket是啥的时候了解的第一条就是针对本机连接最大的优势就是想比TCP/IP开销 极低 极低 极低 重三遍
|
16
zonghua 2015-07-04 22:45:51 +08:00 via iPhone
@realpg 开了svn之后路由映射的jetty服务不能访问怎么办?localhost:9090/可以访问
|
17
barbery 2015-07-04 23:19:36 +08:00
大部分情况下都是unix socket速度较快,但是比较奇怪的是,使用golang的话,普通的监听端口会比socket快很多
|
18
dallaslu 2015-07-04 23:20:15 +08:00
用 TCP 可以方便处理集群配置,是么?
|
19
kn007 2015-07-04 23:22:15 +08:00
|
21
jugelizi 2015-07-05 11:15:40 +08:00
然而必须是一台机器。。。
|
22
luoqeng 2015-07-05 12:07:20 +08:00
直接上共享内存吧,更快。
|
23
ryd994 2015-07-05 13:36:49 +08:00 via Android
@dallaslu
在有socket的情况下,再造这个轮子,已经没必要了,大家已经都在用socket了。 不过我倒是知道有些软件客户端连接localhost会先尝试读取配置文件里的socket,失败再连127.0.0.1。 |
24
guoqiao 2015-07-05 18:31:41 +08:00
搭车讨论个问题:
如果是使用 Docker 来部署 Web 应用, 你可以很容易的通过127.0.0.1:端口将服务映射给宿主机的 Nginx. 但是如果通过 Socket 来做, 我能想到的方法是通过 Volume 来共享 Socket 文件. 但这样做总觉得有点不够完美. 大家是怎么解决 Docker 容器之间的 Socket 通信问题的呢? |
26
julyclyde 2015-07-06 18:17:31 +08:00
“……的情况下”才有这种比较啊
不在这情况下根本都不用比 |
27
Livid MOD OP |