502错误原因分析:
1、这类错误常见于Nginx+PHP的Web架构,Nginx将请求提交给网关PHP-FPM执行,但是由于某些原因请求没有执行完毕导致PHP-FPM进程终止执行。说到此,这个问题就很明了了,与网关服务如PHP-FPM的配置有关了。
2、php-fpm.conf配置文件中有两个参数就需要你考虑到,分别是max_children和request_terminate_timeout。
3、max_children最大子进程数,在高并发请求下,达到php-fpm最大响应数,后续的请求就会出现502错误的。可以通过netstat命令来查看当前连接数。
4、request_terminate_timeout设置单个请求的超时终止时间。还应该注意到php.ini中的max_execution_time参数。当请求终止时,也会出现502错误的。
5、当积累了大量的php请求,你重启php-fpm释放资源,但一两分钟不到,502又再次呈现, 这时还应该考虑到数据库,查看下数据库进程是否有大量的locked进程,数据库死锁导致超时,前端终止了继续请求,但是SQL语句还在等待释放锁,这时就要重启数据库服务了或kill掉死锁SQL进程了。
6、所以在调整max_children和request_terminate_timeout、max_execution_time也需要考虑到服务器资源使用情况及应用代码sql执行效率情况,需要综合衡量。502 Bad Gateway:服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。 亦说Web服务器用作网关或代理服务器时收到了无效响应。
远程服务器是成对设置的。 若要设置一对远程服务器,请将这两台服务器配置为彼此将对方识别为远程服务器。
大多数情况下,不需要为远程服务器设置配置选项。 SQL Server 组将在本地计算机和远程计算机上设置默认值以允许远程服务器连接。
为了能够进行远程访问,必须在本地和远程计算机上将 remote access 配置选项设置为 1。 (这是默认设置。)remote access 控制远程服务器的登录。 可以通过使用 Transact-SQL sp_configure 存储过程或 SQL Server Management Studio 重置此配置选项。 若要在 SQL Server Management Studio中设置选项,请在 “服务器属性连接” 页上,使用 “允许远程连接到此服务器”。 若要访问“服务器属性连接”页,请在对象资源管理器中右键单击服务器名称,再单击“属性”。 在 “服务器属性” 页上,单击 “连接” 页。
在本地服务器中,您可以禁用远程服务器配置,以防止远程服务器中的用户对与其配对的本地服务器进行访问。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)