一些Postgress连接超时,而另一些则不然

时间:2019-04-25 01:31:06

标签: laravel postgresql amazon-web-services amazon-rds

我有一台运行Laravel 5.2应用程序的AWS EC2计算机,该应用程序连接到在RDS中运行的Postgress 9.6数据库。尽管大多数连接都有效,但其中的一些连接在试图稳定时会被拒绝,这会导致超时,从而导致我的API中出现错误。我不知道是什么导致他们被拒绝。另外,发生的时间非常随机,发生的时间可以在任何API端点中,也可以在任何查询的端点内部。

当PHP处理超时时,它显示如下消息:

SQLSTATE[08006] [7] timeout expired (SQL: ...)

有时Nginx处理超时并回复504错误。当Nginx处理超时时,我收到如下错误:

2019/04/24 09:48:18 [error] 20657#20657: *3236 upstream timed out (110: Connection timed out) while reading response header from upstream, client: {client-ip-here}, server: {my-url-here}, request: "GET {my-endpoint-here} HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php7.0-fpm.sock", host: "{}", referrer: "https://app.cartoriovirtual.com/"

RDS和EC2上的所有使用情况图表都还不错,我有大量的RAM,存储,CPU和RDS可用的连接。我还检查了内部VPC流,它们似乎还不错,但是我有许多IP(列为攻击者)正在扫描我的网络接口,但大多数都被拒绝了。一些(至端口22)已接受但在身份验证时停止,我使用.pem密钥文件进行身份验证。

RDS网络接口仅接受来自内部VPC计算机的请求。在其日志中,每隔5分钟,我就会有一个这样的检查点:

2019-04-25 01:05:29 UTC::@:[22595]:LOG: checkpoint starting: time
2019-04-25 01:05:34 UTC::@:[22595]:LOG: checkpoint complete: wrote 43 buffers (0.1%); 0 transaction log file(s) added, 0 removed, 1 recycled; write=4.393 s, sync=0.001 s, total=4.404 s; sync files=19, longest=0.001 s, average=0.000 s; distance=16515 kB, estimate=16515 kB

任何人都有如何找到解决方案的提示?我查看了所想到的所有可能的日志,修复了一些小问题,但错误仍然存​​在。我的想法不多了。

0 个答案:

没有答案