Articles of 套接字

在使用Ubuntu 12.04重新启动时,文件夹从/ var / run中消失

我在Ubuntu上使用UNIX套接字在/var/run/php5-fpm/www.conf.sock上运行php5-fpm 。 在安装过程中,我手动创build了/var/run/的php5-fpm文件夹,以便php5-fpm可以在其中创build它的套接字。 问题是,无论何时我重新启动计算机, php5-fpm文件夹从/var/run消失,而php5-fpm不再能够创build套接字,因此每次重新启动时都需要创build/var/run/php5-fpm/文件夹再次手动。 我可以把这个例程放在/etc/init.d/php5-fpm启动脚本中,但是我想知道以下内容: /var/run/php5-fpm/文件夹在重新启动后应该删除吗? info:我正在运行ubuntu 12.04桌面(我正在计划在主机上使用服务器版本,但现在正在使用笔记本电脑上的桌面版进行一些testing)。

在Ubuntu服务器上重新启动后,PHP 5的目录FPM套接字文件被删除

我创build了一个目录来存储PHP 5 FPM的套接字​​文件: sudo mkdir /var/run/php-fpm 。 它由root:root以及核心PHP FPM进程拥有。 当PHP FPM启动时,它为该目录内的每个池创build套接字文件,并且nginx使用它们进行通信。 但是,当我重新启动我的机器( sudo reboot )后,此目录在重新启动后不见了,PHP FPM无法启动,导致它无法在丢失的目录中创build套接字文件。 可能是什么问题? 我如何debugging它? 我正在使用最新的Ubuntu Server 14.04。

源地址与iptables端口转发

我使用iptables为端口80设置端口转发: iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 10080 此外,我有IP转发启用来路由不同子网的连接。 我在同一台机器上的端口10080上运行我自己的标准套接字服务器,当我收到一个到端口80的传入连接时,它会按照预期转发到我的服务器。 我的问题是,当我打印出使用getsockname和getpeername的套接字信息时,源地址始终是服务器的。 如果我通过一个不受iptables规则影响的端口直接连接到服务器,我会看到预期的客户端地址。 为什么端口转发影响源地址?

Postgres应用程序尝试使用不正确的套接字文件

我有一个本地postgres服务器运行(在Ubuntu的Linux)。 它正在通过套接字文件进行侦听: $ ls -la /var/run/postgresql/ total 8 drwxrwsrwx 2 postgres postgres 100 2011-04-15 19:06 . drwxr-xr-x 26 root root 1100 2011-04-15 19:12 .. -rw——- 1 postgres postgres 5 2011-04-15 19:06 8.4-main.pid srwxrwxrwx 1 postgres postgres 0 2011-04-15 19:06 .s.PGSQL.5433 -rw——- 1 postgres postgres 34 2011-04-15 19:06 .s.PGSQL.5433.lock 我可以在命令行上连接到服务器: $ psql -d gis -U rory […]

为什么客户端会发送一个RST包作为回复SYN,ACK?

我有一个HTTP Web服务有时连接设置以一种奇怪的方式失败: 客户端发送一个SYN数据包 服务器发送SYN,ACK回复 客户端使用RST进行响应 在哪种情况下客户端系统可以决定使用RST数据包进行回复? 我可以想象这发生在SYN,ACK包含例如。 不正确的序列号(但这似乎不适用于我的情况 – 序列号看起来不错)。 所以我对一个详尽的:-)列表感兴趣,客户端收到SYN,ACK包后会发送一个RST包。 特别是,客户端应用程序代码(在Linux下使用普通的BSD风格套接字API)是否有可能导致这个RST包, 通过调用close()而三次握手仍在进行?

如何确定打开套接字的数量? 虚拟机资源问题

我有一个MediaTemple DV服务器。 我已经看到很多QOS警报“numothersock”,它被定义为: 除TCP之外的套接字的数量。 本地(UNIX域)套接字用于系统内的通信。 例如,UDP套接字用于域名服务(DNS)查询。 UDP和其他套接字也可以用于一些非常特殊的应用程序(SNMP代理和其他)。 我怎样才能确定什么应用程序/守护进程/等创build这些套接字? 这个限制是300,我们最近一天要打几次。 提前致谢。

Linux命令等待SSH服务器启动

我有一个脚本创build一个虚拟机,并给我一个IP地址。 然后我想要做这样的事情: waitforssh 192.168.2.38 && ssh 192.168.2.38 它将等待机器启动,ssh正在响应,然后ssh进入它。 waitforssh是我需要find的命令。 nmap,netcat,fping或ping会做这个工作吗? 我尝试了netcat,但是如果主机无法访问,它会在几秒钟内放弃。 它需要处理机器本身正在引导的事实,并且可能需要一些时间来响应networking数据包。

MySQL客户端缓慢loginstrace

即使通过unix套接字文件(CentOS 6.3)连接,我也遇到了连接/login到加载的mysql服务器的问题。 在这种情况下查询很快完成 – (0.00 sec) – 但login需要几秒钟的时间,在这种情况下: real 0m3.128s user 0m0.010s sys 0m0.011s mysqld正在运行skip-name-resolve和一个thread_cache_size这样在这个问题中就不会创build新的线程。 这是一个基于负载的问题 ,即服务器空闲时login非常快。 服务器在强大的硬件上每秒处理大约60个连接和300个查询,所以它没有得到充分利用。 这里是它的摊位的部分,用空行注明。 我假设在read(失速read(意味着它正在等待来自服务器的响应: $ time strace mysql -e 'select 1' […] read(3, "# /etc/services:\n# $Id: services"…, 4096) = 4096 read(3, "ervice\nfinger 79/tcp\nfi"…, 4096) = 4096 read(3, " 209/udp "…, 4096) = 4096 read(3, "a-cluster 694/tcp "…, 4096) = […]

Unix套接字连接限制

这可能看起来像一个已经讨论/回答的问题。 但是我特地寻找信息,我无法在任何地方find清楚的答案。 我有一个Nginx + php-fpm安装程序,它使用unix套接字来与Nginx讨论后端php-fpm fastcgi进程。 最近我听说unix基于套接字的连接不像基于tcp的连接那样可伸缩。 不知道这里的限制因素是什么,特别是当我从同一个主机运行所有的东西。 我可以增加每个系统或用户的最大文件描述符(nginx)。 我也可以增加每个nginx工作进程的这个限制。 最大文件描述符是限制因素吗? 我有很less的网站configuration在这个设置和最大套接字(每个网站一个)。 我使用less于50.是否有一个最大的并发连接限制,当多个nginx线程在高负载下与后端的多个php-fpm实例交谈时,每个套接字是否有最大并发连接限制? 或者,如果并发性非常高,实际上可以限制套接字允许这些连接? 是否还有其他因素可以影响性能如锁,磁盘IO性能等?

为什么在主机上有一个套接字接口,在guest虚拟机上有一个用于virtio-serial的字符设备接口?

我正在尝试使用kvm作为pipe理程序在主机和其中一个访客虚拟机之间build立通信通道。 为此,我使用了virtio-serial 。 要创build虚拟机,我发出了以下命令: qemu-system-x86_64 \ -m 2048 -name ubuntu \ -hda ubuntu_image \ -device virtio-serial \ -chardev socket,path=/tmp/foo,server,nowait,id=foo \ -device virtconsole,name=jobsfoo,chardev=foo,name=org.ubuntu.foo \ 然后为了沟通,在客人,我使用: socat /dev/hvc0 – 并在主机上: socat /tmp/foo – 我明白了/tmp/foo是一个socket和/dev/hvc0一个字符设备。 为什么有通信的对称接口:主机上的套接字和客户机上的字符设备?