我们有一个登台机器,最近已经返回403状态。 这是一个运行nginx的centOS机器。 Nginx将一些stream量传递给Scala Play应用程序和运行PHP应用程序(Apache Drupal)的Apache。 该服务器受基本的htaccessauthentication保护。
当我导航到服务器,我得到了基本的身份validation,并确定login。
如果我请求robots.txt文件,它立即出现,nginx access.log显示请求是200 OK,并logging我的htaccess用户名。
XX.XXX.XXX.XXX - MYUSER [31/Dec/2015:16:16:02 +0000] "GET /robots.txt HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" "-"
但是当我请求网站的主页(Drupal主页),我得到了浏览器中的403错误。 当我尾巴的nginx错误日志,我看到这个消息logging了我的请求后不久:
XX.XXX.XXX.XXX - MYUSER [31/Dec/2015:16:18:02 +0000] "GET /index.php HTTP/1.1" 499 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" "-"
显然,499是一个nginx特定的代码,用于客户端在请求被处理时closures的连接。 不过,我的浏览器仍在等待回应。 一分多钟后,我在浏览器中得到了503错误,并logging在nginx access.log中:
XX.XXX.XXX.XXX - MYUSER [31/Dec/2015:16:20:32 +0000] "GET /index.php HTTP/1.1" 504 584 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" "-"
当我看看nginx的error.log我看到这个:
2015/12/31 16:20:32 [error] 11645#0: *78933 upstream timed out (110: Connection timed out) while reading response header from upstream, client: XX.XXX.XXX.XXX, server: staging.mysite.com, request: "GET /index.php HTTP/1.1", upstream: "http://127.0.0.1:8080/index.php", host: "staging.mysite.com"
所以我想知道问题是Apache还是Drupal。 apache access_log不logging我的用户对index.php的请求,error_log不显示这个date的任何内容。 我重新启动Apache – 没有改变。
为了检查drupal,我做了一个简单的phptesting页面,引导了drupal。 尽pipe延迟很长,我仍能够加载该页面。 这导致在nginx access.log中logging,但不是apache access_log。
我对这些问题进行故障排除并不是很熟悉,或者与nginx一起工作,所以我在这里遇到了一些麻烦。 有没有人看到合理的下一步?