gpt4 book ai didi

php - PHP WebSocket 服务器和 NGINX 反向代理的文件限制

转载 作者:行者123 更新时间:2023-12-04 16:13:43 25 4
gpt4 key购买 nike

我已经设置了一个 PHP websocket 服务器 (Ratchet) 并使用 NGINX 作为反向代理,以避免让用户连接到不同的端口。一切都很顺利,直到我得到的连接数少于 1024(准确地说是 1020)。然后所有其他连接都被拒绝(超时)。看起来有些东西的上限是 1024 个文件描述符,但我不知道是什么。

NGINX 的 proxy_error_log 说“上游超时(110:连接超时)而从上游读取响应头,客户端:my_ip,服务器:“域名”,
请求:“GET/socket_server_path/HTTP/1.1”,上游:“http://127.0.0.1:8080/socket_server_path/”,主机:“domain_name_again”

NGINX 用户和运行服务器的用户都在/etc/security/limits.conf 中设置了良好的文件限制(高于 1024)。据我所知,进程在/proc/PID#/limit 中设置了一个上限。

https://github.com/ratchetphp/Ratchet/issues/300描述了我想象中正在发生的事情,但我没有在我的应用程序中看到错误打印。无论如何,我继续使用 --enable-fd-setsize=10000 编译 PHP,但这仍然没有让更多的连接发生。

我怎样才能获得更多细节并了解到底发生了什么?我现在要做的就是 NGINX 超时了。但是我不知道是不是PHP无法打开更多的套接字,或者是NGINX,还是完全不同的东西。

最佳答案

原来我只是一个假人。根据https://bugs.php.net/bug.php?id=69637 --enable-fd-setsize 不能正常工作。

即使我更改了系统头文件常量(在我的原始问题中链接的 Ratchet 问题中提到),我还是在没有运行“make clean”的情况下重新编译,所以我想我仍在使用旧的(低限制)值进行编译.

我无法在我的 php 配置中找到与此相关的任何内容。但是在更改头文件中的常量并再次编译后,我能够超过 1024 的最大值。

关于php - PHP WebSocket 服务器和 NGINX 反向代理的文件限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39172419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com