Я установил сервер веб-сервера PHP (Ratchet) и использовал NGINX в качестве обратного прокси-сервера, чтобы избежать подключения пользователей к другому порту. Все идет отлично, пока я не получу чуть меньше 1024 (1020, если быть точным) соединений. Затем запрещается любое другое соединение (время ожидания). Похоже, что что-то ограничено 1024 дескрипторами файлов, но я не могу понять, что.Ограничения в файлах с помощью PHP WebSocket Server и обратного прокси-сервера NGINX
proxy_error_log Nginx говорит, что «вверх по течению истекло (110: Тайм-аут соединения) во время чтения заголовка ответа от вышестоящего, клиента: my_ip, сервер: "domain_name", запрос: "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 описывает, что я думаю, происходит, но я не вижу, чтобы эта ошибка печаталась в моем приложении ция. Я пошел вперед и скомпилировал PHP с --enable-fd-setsize = 10000 в любом случае, но это все еще не позволяет больше подключений.
Как я могу получить более подробную информацию об этом и понять, что именно происходит? Все, что мне нужно сделать прямо сейчас, это то, что NGINX отключается. Но я не знаю, не может ли PHP открыть больше сокетов, или если это NGINX или что-то совершенно другое.
Я также долго боролся с этой проблемой. Убедитесь, что в вашей конфигурации php ничего не ограничено 1024. Подняв пределы php, я решил это тогда. не может получить эту конфигурацию, поэтому я не смогу точно сказать, что вам нужно. – mitchken