小编Key*_*urM的帖子

调试504网关超时及其实际原因和解决方案

我们正在RHEL 6.6的Web服务器Varnish + Nginx + FastCGI(php-fpm)上运行以下堆栈

它是一个动态网站,每次都有不同的结果集,并且有大约200万个url被Google索引。

  • 它运行在nginx / 1.5.12和PHP 5.3.3上(将很快升级到最新的nginx和PHP)
  • Nginx连接到端口9000上同一服务器上本地运行的php-fpm

在某些无法解决的页面上,我们间歇性地收到504网关超时。经过一段时间后,给出504的URL可以正常工作。我们从日志中了解到504,但由于它随机出现在任何URL上并在一段时间后起作用,因此我们无法对其进行复制。

我曾与开发人员进行过几次讨论,但是按照他的说法,底层的php脚本几乎什么也不做,它不应该花那么长时间(120秒),但仍然会给504网关超时。

需要确定问题发生的确切位置:

  • Nginx有问题吗?
  • php-fpm是否有问题?
  • 底层的php脚本有问题吗?
  • Nginx是否可能无法连接到php-fpm?
  • 如果我们使用Unix套接字而不是TCP / IP连接可以解决吗?

URL在120秒后用504超时

以下是看到的错误:2016/01/04 17:29:20 [错误] 1070#0:* 196333149在连接上游时,上游超时(110:连接超时),客户端:66.249.74.95,服务器:xxxx,请求:“ GET / Some / url HTTP / 1.1”,上游:“ fastcgi://127.0.0.1:9000”,主机:“ example.com”

早期的fastcgi_connect_timeout为150秒-过去63秒,它通常在RHEL 6.6上使用net.ipv4.tcp_syn_retries = 5时给出502状态代码;之后,我们设置net.ipv4.tcp_syn_retries = 6,然后在127秒后开始提供502。

一旦我将fastcgi_connect_timeout设置为120,它就会开始提供504状态代码。我知道具有如此高的值的fastcgi_connect_timeout不好。

需要找出为什么我们确切地得到504(我知道它超时,但是原因未知)。需要找到根本原因永久修复它。

我如何确认问题出在哪里?

这是一些已经定义的超时:

在服务器范围的nginx.conf下:

  • keepalive_timeout 5;
  • send_timeout 150;

在特定的vhost.conf下:

  • proxy_send_timeout 100
  • proxy_read_timeout 100
  • proxy_connect_timeout 100
  • fastcgi_connect_timeout 120
  • fastcgi_send_timeout 300
  • fastcgi_read_timeout 300

使用了不同的超时值,因此我可以弄清楚是哪个触发了确切的超时。

以下是sysctl.conf中的一些设置:

  • net.ipv4.ip_local_port_range = 1024 65500
  • net.ipv4.tcp_fin_timeout = 10
  • net.ipv4.tcp_tw_reuse = 1
  • net.ipv4.tcp_syn_retries = …

php linux nginx connection-timeout http-status-code-504

9
推荐指数
1
解决办法
3063
查看次数

使用arangod.conf(/etc/arangodb3/arangod.conf)而不是命令行选项设置arango集群

我能够使用https://docs.arangodb.com/3.0/Manual/Deployment/Distributed.html中提到的流程启动Arango集群.

我们不希望每次都在命令行中传递所有配置,而是希望从/etc/arangodb3/arangod.conf运行它

我们如何确保上述文档中提到的每个CLI选项都取自arango配置文件.

arangodb

3
推荐指数
1
解决办法
805
查看次数

DCOS无法安装和运行ArangoDB

我已经安装了一个代理和3个主服务器的DCOS,并尝试安装ArangoDB,但它未能部署arangodb.

下面是根据日志看到的配置.

ArangoDB图片:arangodb/arangodb-mesos:3.0

模式:集群

异步复制标志:0

SecondariesWithDBservers:0

CoordinatorsWithDBservers:0

SecondarySameServer:0

ArangoDBForcePullImage:1

ArangoDBPrivilegedImage:0

最小资源代理:mem():2048; cpus():0.25;磁盘(*):2048

最小资源DBserver:mem():4096; cpus():1;磁盘(*):4096

最小资源辅助DBserver:mem():4096; cpus():1;磁盘(*):4096

最小资源协调器:mem():4096; cpus():1;磁盘(*):1024

代理商数量:3

DB服务器数量:2

协调员人数:2

zookeeper:zk://master.mesos:2181/arangodb3

以下是日志文件中出现的错误.

0901 07:07:34.769537 23 CaretakerCluster.cpp:422]计划的代理程序实例:3,正在运行的代理程序实例:1

I0901 07:07:34.769601 23 Caretaker.cpp:400]报价下降e2301ebe-fff0-46a5-b71b-ef77b9a7a764-O11

I0901 07:07:37.474743 24 HttpServer.cpp:439]处理http请求'GET /v1/health.json'

I0901 07:07:40.802276 23 CaretakerCluster.cpp:416]这里的报价:

{ "ID":{ "值": "e2301ebe-fff0-46a5-b71b-ef77b9a7a764-O12"}, "framework_id":{ "值": "37ac79b8-bc37-4493-9558-aa72638290db-0002"}," slave_id ":{"值":" 37ac79b8-bc37-4493-9558-aa72638290db-S0 "},"主机名":" 192.168.12.167" , "URL":{ "方案": "HTTP", "地址": { "主机名": "192.168.12.167", "IP": "192.168.12.167", "端口":5051}, "路径": "/从(1)", "查询":[]},"资源":[{"名称":"端口" "类型":1, "范围":{ "范围":[{ "开始":1026, "结束":2180},{ "开始":2182,"端":3887},{"开始":3889,"结束":5049},{"开始":5052,"结束":8079},{"开始":8082,"结束":8180},{"开始":8182,"结束":17140},{"开始":17144,"结束":32000}]},"角色":" …

arangodb dcos

0
推荐指数
1
解决办法
165
查看次数