GCloud AppEngine nodejs应用程序在第一个请求上返回404,但随后的请求成功

时间:2019-01-18 21:04:00

标签: node.js express google-app-engine http-status-code-404 express-graphql

我在GCloud AppEngine标准环境上部署了一个nodejs服务器(graphql)应用程序,偶尔第一个请求失败,但随后的请求(在5秒内)可以正常工作。我正在使用以下配置:

runtime: nodejs10
instance_class: F2
service: ...
env_variables:
  ...
  ...

和日志如下(有关404s,请参见最后几行):

OPTIONS 204 310 B 4.1 s Chrome 71 /graphql OPTIONS 204 310 B 4.1 s Chrome 71 
OPTIONS 204 310 B 4.1 s Chrome 71 /graphql OPTIONS 204 310 B 4.1 s Chrome 71 
[start] 2019/01/18 20:46:21.506468 no entrypoint specified, using default entrypoint: /serve 
[start] 2019/01/18 20:46:21.511900 no entrypoint specified, using default entrypoint: /serve 
[start] 2019/01/18 20:46:21.539860 starting app 
[start] 2019/01/18 20:46:21.540272 Executing: /bin/sh -c exec /serve 
[start] 2019/01/18 20:46:21.540122 starting app 
[start] 2019/01/18 20:46:21.540403 Executing: /bin/sh -c exec /serve 
[start] 2019/01/18 20:46:21.560976 waiting for network connection open. subject:"app/invalid" Address:127.0.0.1:8080 
[start] 2019/01/18 20:46:21.561742 waiting for network connection open. subject:"app/valid" Address:127.0.0.1:8081 
[start] 2019/01/18 20:46:21.561786 waiting for network connection open. subject:"app/invalid" Address:127.0.0.1:8080 
[start] 2019/01/18 20:46:21.562055 waiting for network connection open. subject:"app/valid" Address:127.0.0.1:8081 
[serve] 2019/01/18 20:46:21.586374 serve started 
[serve] 2019/01/18 20:46:21.586831 args: {runtimeName:nodejs10 memoryMB:256 positional:[]} 
[serve] 2019/01/18 20:46:21.587680 serve started 
[serve] 2019/01/18 20:46:21.588167 args: {runtimeName:nodejs10 memoryMB:256 positional:[]} 
[serve] 2019/01/18 20:46:21.593780 execing to: /bin/sh -c exec node ./dist/index.js 
[serve] 2019/01/18 20:46:21.594081 execing to: /bin/sh -c exec node ./dist/index.js 
[start] 2019/01/18 20:46:25.122334 wait successful. subject:"app/valid" Address:127.0.0.1:8081 attempts:701 elapsed:3.560382686s 
[start] 2019/01/18 20:46:25.122604 starting nginx 
Go to http://localhost:8081/graphql to run queries! 
[start] 2019/01/18 20:46:25.127939 wait successful. subject:"app/valid" Address:127.0.0.1:8081 attempts:687 elapsed:3.56541476s 
[start] 2019/01/18 20:46:25.128135 starting nginx 
[start] 2019/01/18 20:46:25.128836 waiting for network connection open. subject:"nginx" Address:127.0.0.1:8080 
Go to http://localhost:8081/graphql to run queries! 
[start] 2019/01/18 20:46:25.163712 waiting for network connection open. subject:"nginx" Address:127.0.0.1:8080 
[start] 2019/01/18 20:46:25.179456 wait successful. subject:"nginx" Address:127.0.0.1:8080 attempts:6 elapsed:50.397788ms 
[start] 2019/01/18 20:46:25.184531 wait successful. subject:"nginx" Address:127.0.0.1:8080 attempts:4 elapsed:20.559325ms 
2019/01/18 20:46:25 [alert] 33#33: prctl(PR_SET_DUMPABLE) failed (22: Invalid argument) 
2019/01/18 20:46:25 [alert] 33#33: prctl(PR_SET_DUMPABLE) failed (22: Invalid argument) 
POST 404 505 B 176 ms Chrome 71 /graphql POST 404 505 B 176 ms Chrome 71 
POST 404 505 B 185 ms Chrome 71 /graphql POST 404 505 B 185 ms Chrome 71 
OPTIONS 204 310 B 4 ms Chrome 71 /graphql OPTIONS 204 310 B 4 ms Chrome 71 
POST 200 679 B 73 ms Chrome 71 /graphql POST 200 679 B 73 ms Chrome 71 
OPTIONS 204 310 B 3 ms Chrome 71 /graphql OPTIONS 204 310 B 3 ms Chrome 71 
POST 200 651 B 61 ms Chrome 71 /graphql POST 200 651 B 61 ms Chrome 71 
OPTIONS 204 310 B 4 ms Chrome 71 /graphql OPTIONS 204 310 B 4 ms Chrome 71 
OPTIONS 204 310 B 2 ms Chrome 71 /graphql OPTIONS 204 310 B 2 ms Chrome 71 
POST 200 677 B 131 ms Chrome 71 /graphql POST 200 677 B 131 ms Chrome 71 
POST 200 653 B 127 ms Chrome 71 /graphql POST 200 653 B 127 ms Chrome 71 

有人知道会出什么问题吗?谢谢

1 个答案:

答案 0 :(得分:0)

我想您是指以下日志条目。您说这种情况偶尔发生,是否有某种发生方式?您的查询是做什么的?从日志中看,这两个请求似乎是部署后的第一个请求,可能由于应用程序未完全提供服务而失败,或者流量仍从先前版本重定向。在应用程序已经部署时或仅在新部署之后,您会遇到这些错误吗?

POST 404 505 B 176 ms Chrome 71 /graphql POST 404 505 B 176 ms Chrome 71 
POST 404 505 B 185 ms Chrome 71 /graphql POST 404 505 B 185 ms Chrome 71