Home > Article > Backend Development > How to solve nginx php 499 error problem
nginx php 499 error is because the server-side processing time is too long and the client is disconnected and waiting. The solution is to find "php-fpm.conf" on Linux and add "pm" at the bottom =dynamic" and other configurations.
The operating environment of this article: nginx1.0.4 system, PHP7.1 version, DELL G3 computer
PHP and NGINX 499, 502 Problem handling
There are many reasons why nginx appears with 502, but most of the reasons can be attributed to insufficient resources.
That is to say, there is a problem with the backend php-fpm processing, and nginx will The correct client request was sent to the back-end php-fpm process,
However, due to problems with the php-fpm process, the php code could not be parsed correctly, and a 502 error was eventually returned to the client.
The reason why the server appears 502 is that the connection has timed out. We send a request to the server. Because the server currently has too many connections, the server cannot give a normal response and generate such an error.
So if your server If the amount of concurrency is very large, you can only add machines first, and then optimize as follows to achieve better results; but if you have a small concurrency but get 502, it can generally be attributed to configuration issues and script timeout issues.
The final problem is the program code itself. The processing time is too long and the resources cannot be returned! So pay attention to code optimization!
499 corresponds to "client has closed connection". This is most likely because the server-side processing time is too long and the client is disconnected from the waiting state.
If the post is submitted twice too quickly, 499 will appear. nginx considers it an unsafe connection and actively rejects the client's connection!
There is also a timeout!
Most of them say that they modify proxy_ignore_client_abort on, which means that the proxy server should not actively close the client connection. This is a situation. But it is not a solution to the problem!
The following is how I solved this problem through fpm
Control the child process, the options are static and dynamic. If static is selected, a fixed number of child processes is specified by pm.max_children. For dedicated servers, the pm value can be set to static. If you select dynamic, it is controlled by a series of parameters, that is, the dynamic process.
On Linux we find php-fpm.conf and add the following configuration at the bottom
pm = dynamic dynamic routing option configuration
pm.max_children = 16 Maximum number of child processes
pm.start_servers = 4 The number of processes at startup
pm.min_spare_servers = 2 The minimum number of idle processes. If the idle processes are less than this value, a new child process will be created
pm.max_spare_servers = 16 ensures the maximum number of idle processes. If the idle processes are greater than this value, this will be cleaned up.
I won’t go into too much detail about the static configuration. The default configuration is enough. If you want to know more, please control it on Baidu. Number of processes of php-fpm
Recommended study: "PHP Video Tutorial"
The above is the detailed content of How to solve nginx php 499 error problem. For more information, please follow other related articles on the PHP Chinese website!