标签: socket

Nginx + php5-fpm = "找不到文件"

我在使用 nginx/fpm 设置站点时遇到了麻烦。该页面显示“找不到文件”,这出现在 nginx error.log 中:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream
Run Code Online (Sandbox Code Playgroud)

我是 nginx 和 fpm 的新手,该错误消息对我来说毫无意义(即使谷歌机器也没有帮助!)。任何人都可以对可能发生的事情有所了解吗?

nginx php-fpm socket

14
推荐指数
1
解决办法
5万
查看次数

等待 SSH 服务器启动的 Linux 命令

我有一个脚本,它创建一个虚拟机并给我一个 IP 地址。然后我想做这样的事情:

waitforssh 192.168.2.38 && ssh 192.168.2.38
Run Code Online (Sandbox Code Playgroud)

它将等待机器启动并且 ssh 响应,然后 ssh 进入它。

waitforssh是我需要找到的命令。

nmap、netcat、fping 或 ping 可以完成这项工作吗?我尝试过 netcat,但如果主机无法访问,它会在几秒钟内放弃。

它需要处理机器本身正在启动并且可能需要一些时间来响应网络数据包的事实。

linux ssh ping socket pause

13
推荐指数
1
解决办法
2万
查看次数

无法使用“localhost”连接到 MySQL,但使用“127.0.0.1”可以吗?

我的 /etc/hosts 文件如下所示:

127.0.0.1 localhost

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Run Code Online (Sandbox Code Playgroud)

我在构建服务器时发现,虽然我可以成功 ping localhost,但在 Postfix 和 Apache 和 Dovecot 等服务的某些配置文件中,我需要指定127.0.0.1而不是localhost为了使它们工作。

我还需要更改某些数据库驱动网站的配置文件,用于localhost连接到 MySQL。

我已经尝试了对该hosts文件的各种修改,但到目前为止我尝试过的一切都没有帮助。

服务器正在运行 Ubuntu 12.04.02 LTS。它没有安装 selinux,即使在设置 IPtables 默认策略以接受和刷新它们之后,上述情况仍然存在。

mysql linux ubuntu hostname socket

13
推荐指数
2
解决办法
5万
查看次数

每个主机的 TCP 源端口是否必须是唯一的?

我了解到 TCP 连接由元组(源 IP、源端口、目标 ip、目标端口)标识。从理论上讲,因此应该可以让一个来自 host1:port1 的客户端连接到 server1:port1,同时另一个客户端(在 host1 上运行)从 host1:port1 连接到 server2:port1。

我已经在 J​​ava 中进行了一些测试,到目前为止似乎是可能的。

但是,我多次阅读到主机地址的源端口必须是唯一的,这基本上意味着最多有 65536 个并发传出 TCP 连接的硬限制。真的吗?

更新:这是我的 Java 代码。这似乎有效,并且 netstat -t 清楚地显示来自端口 9990(一个到 9997,一个到 9998)的两个活动的传出连接。至少在现代 Linux 上,这似乎是可能的?

Socket s1 = new Socket();
s1.setReuseAddress(true);
SocketAddress saremote = new InetSocketAddress("localhost",9999);
SocketAddress salocal = new InetSocketAddress("localhost",9990);
s1.bind(salocal);
s1.connect(saremote);


Socket s2 = new Socket();
s2.setReuseAddress(true);
SocketAddress saremote2 = new InetSocketAddress("localhost",9998);
SocketAddress salocal2 = new InetSocketAddress("localhost",9990);
s2.bind(salocal2);
s2.connect(saremote2);
Run Code Online (Sandbox Code Playgroud)

和 netstat -t 输出(截断):

tcp6       0      0 localhost:9990 …
Run Code Online (Sandbox Code Playgroud)

tcp socket

12
推荐指数
2
解决办法
1万
查看次数

更改 /proc/sys/net/ipv4/tcp_tw_reuse 的值是否危险?

我们有几个最近转换成虚拟机的生产系统。我们的一个应用程序经常访问 MySQL 数据库,并且为每个查询创建一个连接、查询并断开该连接。

这不是查询的合适方式(我知道),但我们有一些我们似乎无法绕过的限制。无论如何,问题是:虽然机器是物理主机,但程序运行良好。转换为虚拟机后,我们注意到与数据库的间歇性连接问题。有一次,TIME_WAIT 中有 24000 多个套接字连接(在物理主机上,我看到的最多是 17000 - 不好,但不会引起问题)。

我希望重用这些连接,以便我们看不到连接问题,因此:

问题:

将 tcp_tw_reuse 的值设置为 1 可以吗?有哪些明显的危险?有什么理由我永远不应该这样做吗?

另外,有没有其他方法可以让系统(RHEL/CentOS)防止如此多的连接进入 TIME_WAIT,或者让它们被重用?

最后,更改 tcp_tw_recycle 会做什么,这对我有帮助吗?

提前,谢谢!

virtual-machines linux-networking socket

11
推荐指数
3
解决办法
3万
查看次数

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

我有一个 MediaTemple DV 服务器。我一直在看到很多关于“numothersock”的 QOS 警报,其定义为:

除 TCP 套接字之外的套接字数。本地(UNIX 域)套接字用于系统内部的通信。例如,UDP 套接字用于域名服务 (DNS) 查询。UDP 和其他套接字也可用于一些非常专业的应用程序(SNMP 代理和其他应用程序)。

如何确定哪些应用程序/守护程序/等正在创建这些套接字?限制是 300,我们最近每天都会达到几次。

提前致谢。

linux qos socket

10
推荐指数
2
解决办法
7万
查看次数

将 tcp_tw_recycle/reuse 设置为 1 的后果是什么?

我在配置文件中将 tcp_tw_recycle/reuse 都设置为 1。

这样做的后果是什么?

如果重复使用 tcp 套接字,是否会带来安全风险?即 2 个不同的连接都可能能够发送数据?

它适用于重新连接机会很小的短期连接吗?

ubuntu tcp socket

10
推荐指数
3
解决办法
2万
查看次数

嗅探 UNIX 域套接字

我知道某个进程正在写入某个 unix 域套接字 ( /var/run/asterisk/asterisk.ctl),但我不知道发件人的 pid。我怎样才能找出谁在写套接字?我试过:

sudo lsof /var/run/asterisk/asterisk.ctl
Run Code Online (Sandbox Code Playgroud)

但它只是列出了套接字的所有者。我想知道谁在写/读这个套接字,我也想嗅探数据。这可能吗?

linux socket

10
推荐指数
3
解决办法
1万
查看次数

检查路径是否超过 Unix 域套接字的最大值

操作系统限制 Unix 域套接字的路径长度。如何检查特定路径是否在该限制内?

或者,换句话说,如何在 Linux 或 Mac OS X 系统上检查 Unix 域套接字路径的最大允许长度?

我的用例是 SSH 多路复用:如果 ControlPath 太长,则 SSH 多路复用将无法工作,因为它会创建一个 unix 域套接字。我希望能够检查有效的控制路径,而不必实际启动 ssh 会话并查找错误消息。

linux ssh mac-osx socket

10
推荐指数
2
解决办法
6715
查看次数

无法启动mysql服务

我无法从我的 ubuntu 服务器重新启动我的 mysql 服务。这是错误:

? mysql.service - LSB: Start and stop the mysql database server daemon
Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)   
Active: failed (Result: exit-code) since mer. 2016-06-08 17:31:06 CEST; 54s ago
Docs: man:systemd-sysv-generator(8)   Process: 4087 ExecStart=/etc/init.d/mysql start (code=exited, status=1/FAILURE)

juin 08 17:31:06 SRV-OVH-GIC03-V /etc/init.d/mysql[4569]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
juin 08 17:31:06 SRV-OVH-GIC03-V /etc/init.d/mysql[4569]: [61B blob data]
juin 08 17:31:06 SRV-OVH-GIC03-V /etc/init.d/mysql[4569]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' …
Run Code Online (Sandbox Code Playgroud)

mysql service socket

10
推荐指数
1
解决办法
8万
查看次数