Questions tagged «socket»

套接字是具有发送和接收端的抽象网络构造。在大多数现代操作系统(OS)中,都有设备表示形式和用于寻址套接字的编程工具。

1
为Socket.IO 1.0配置Apache 2.4 mod_proxy_wstunnel
我正在尝试配置Apache 2.4,以使用mod_proxy_wstunnel将socket.io的websocket连接代理到node.js websocket服务器。我们可以在socket.io 0.9上正常工作,但是在1.0版本中,他们将套接字端点更改为查询参数,现在我在使用正确的代理指令配置apache时遇到了麻烦。 的所有请求/socket.io/?EIO=N&transport=websocket(其中N是任意数字,通常为2)都需要转发给ws://localhost:8082/socket.io/,但是所有其他请求都需要转发给http://localhost:8082/socket.io/。 我已经尝试了以下两个配置的变体: ProxyPass /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket ProxyPassReverse /socket.io/?EIO=2&transport=websocket http://localhost:8082/socket.io/?EIO=2&transport=websocket ProxyPass /socket.io/ http://localhost:8082/socket.io/ ProxyPassReverse /socket.io/ http://localhost:8082/socket.io/ 。 RewriteRule /socket.io/?EIO=([0-9]+)&transport=websocket ws://localhost:8082/socket.io/ [QSA,P] ProxyPass /socket.io/ http://localhost:8082/socket.io/ ProxyPassReverse /socket.io/ http://localhost:8082/socket.io/ 我从谷歌搜索中了解到ProxyPass和Locations无法定位查询字符串,因此这里还有其他选择吗?这些路径被硬编码到socket.io中,因此如果没有分叉整个库,我就无法更改它们。

7
Nginx + php5-fpm =“找不到文件”
在使用nginx / fpm设置站点时,我碰壁了。该页面显示“找不到文件”,这出现在nginx error.log中: FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream 我是nginx和fpm的新手,并且该错误消息对我而言毫无意义(即使Google机器也无济于事!)。任何人都可以阐明可能发生的事情吗?
14 nginx  php-fpm  socket 

4
如何获得Linux网络日志?
我们有一个运行在Linux上的Java服务器的特定端口,该端口接受成千上万个用户的持久连接。最近,我们的客户无法连接并出现超时错误。我们怀疑流量太高了,但是我们的Java日志实际上显示每秒连接的数量并不多。 我们怀疑是否可能有太多同时尝试,并且它们基本上已在操作系统级别删除,因此Java程序从未真正有机会接受连接吗?linux中是否有某种日志可以显示有人试图敲打套接字?

1
如何直接通过TCP公开UNIX域套接字
我想要一个UNIX域套接字,例如通过TCP公开的/var/program/program.cmd,让它在端口12345上说。我还希望它在后台全时运行。 最好的方法是什么?如果相关,则系统正在运行Ubuntu 12.04.2。 同样,通过提出的解决方案,它可以在删除并重新创建的域套接字中生存下来吗? 编辑 这是初始化脚本形式的已接受答案的结果:https : //github.com/Wirehive/haproxy-remote
13 linux  ubuntu  tcp  socket 

7
无法使用“ 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 我在构建服务器时发现,尽管我可以成功ping通localhost,但是在某些配置文件中,如Postfix,Apache和Dovecot等服务中,我需要指定127.0.0.1而不是localhost使它们工作。 我还需要更改某些数据库驱动的网站的配置文件,这些网站用于localhost连接MySQL。 我已经尝试过对该hosts文件进行各种修改,但是到目前为止我没有尝试过。 服务器正在运行Ubuntu 12.04.02 LTS。它没有安装selinux,即使将IPtables默认策略设置为接受并刷新它们,上述情况仍然存在。

5
如何设置memcached以使用unix套接字?
虽然我可以在Debian上使用memcached来使用默认的11211端口,但是在设置Unix套接字时遇到了很大的困难。 通过阅读,我知道我需要创建一个memcache.socket并添加: -s /path/to/memcache.socket -a 0766 要/etc/memcached.conf并注释掉默认的连接端口和IP,即 -p 11211 -l 127.0.0.1 但是,当我重新启动memcached时,我在Drupal站点上收到内部服务器错误。 我正在尝试实现unix套接字,以避免TCP / IP开销并提高整体内存缓存的性能,但是不确定是否可以通过此调整获得多少性能。 感谢您的提示或可能的配置来解决此问题。
12 memcached  socket 

4
Linux上的最大套接字数
似乎服务器限制在〜32720个套接字...我尝试了所有已知的变量更改以提高此限制。但是,即使仍然有4Go的可用内存和80%的空闲cpu,服务器仍限制在32720打开的套接字上。 这是配置 ~# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 63931 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 798621 pipe size (512 bytes, …

1
无法启动mysql服务
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使其成为服务器故障的主题。 3年前关闭。 我无法从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 …
10 mysql  service  socket 


5
每个主机的TCP源端口是否必须唯一?
我了解到,元组(源IP,源端口,目标ip,目标端口)标识了TCP连接。从理论上讲,因此应该有可能将host1:port1中的客户端连接到server1:port1,同时将另一个客户端(在host1上运行)从host1:port1连接到server2:port1。 我已经在Java中进行了一些测试,到目前为止似乎可行。 但是,我多次读到,源端口对于主机地址必须是唯一的,这基本上意味着硬限制是最多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); 和netstat -t输出(被截断): tcp6 0 0 localhost:9990 localhost:9998 CONNECTED tcp6 …
10 tcp  socket 

4
更改/ proc / sys / net / ipv4 / tcp_tw_reuse的值是否危险?
我们有一些生产系统,最近已将其转换为虚拟机。我们的应用程序经常访问MySQL数据库,并且它为每个查询创建一个连接,查询并断开该连接。 这不是查询的合适方法(我知道),但是我们有一些似乎无法解决的约束。无论如何,问题是这样的:当计算机是物理主机时,程序运行良好。转换为虚拟机后,我们注意到与数据库的间歇性连接问题。一次,TIME_WAIT中有24000多个套接字连接(在物理主机上,我看到的最多是17000个-不好,但不会引起问题)。 我希望这些连接能够被重用,这样我们就不会看到该连接问题,因此: 问题: 可以将tcp_tw_reuse的值设置为1吗?有哪些明显的危险?有什么理由我不应该这样做吗? 另外,是否还有其他方法可以获取系统(RHEL / CentOS),以防止许多连接进入TIME_WAIT或被重用? 最后,更改tcp_tw_recycle有什么用,对我有帮助吗? 提前谢谢!

4
围攻:描述符表已满sock.c:119:打开文件过多
我试图通过以下命令使用siege在自己的服务器上进行压力测试: $ siege -c 500 myweb.com/somefile.php 但是我得到这个错误: [error] descriptor table full sock.c:119: Too many open files 而且我也收到以下警告: libgcc_s.so.1 must be installed for pthread_cancel to work 但是我正在使用Ubuntu 15.04(开发分支),并且已经安装了libgcc1软件包,所以我不知道为什么它对.so共享库感到困惑。 如何解决打开的文件过多和libgcc警告?

3
将tcp_tw_recycle / reuse设置为1有什么影响?
我在配置文件中将tcp_tw_recycle / reuse都设置为1。 这样做的后果是什么? 如果重新使用TCP套接字,是否会带来安全风险?即2个不同的连接都可能能够发送数据? 它是否适用于寿命短的连接,并且有重新连接的机会?
10 ubuntu  tcp  socket 

2
检查Unix域套接字的路径是否超过最大值
操作系统限制Unix域套接字的路径长度。如何检查特定路径是否在该限制内? 或者,换句话说,如何在Linux或Mac OS X系统上检查Unix域套接字的路径的最大允许长度? 我的用例是SSH多路复用:如果ControlPath太长,则SSH多路复用将不起作用,因为它会创建Unix域套接字。我希望能够检查有效的控制路径,而不必实际启动ssh会话并查找错误消息。
9 linux  ssh  mac-osx  socket 

4
嗅探UNIX域套接字
我知道某个进程正在写入某个Unix域套接字(/var/run/asterisk/asterisk.ctl),但是我不知道发送方的pid。我如何找出谁在写套接字?我尝试过: sudo lsof /var/run/asterisk/asterisk.ctl 但它只是列出套接字的所有者。我想知道谁在向这个套接字写/读,我也想嗅探数据。这可能吗?
9 linux  socket 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.