node.js - GCloud AppEngine nodejs 应用程序在第一次请求时返回 404,但后续请求成功
问题描述
我正在 GCloud AppEngine 标准环境上部署 nodejs 服务器(graphql)应用程序,有时第一个请求会失败,但后续请求(5 秒内)工作。我正在使用以下配置:
runtime: nodejs10
instance_class: F2
service: ...
env_variables:
...
...
并且日志如下(参见 404 的最后几行):
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
有谁知道可能出了什么问题?谢谢
解决方案
我想您指的是以下日志条目。你说这种情况偶尔会发生,有什么规律吗?您的查询是由什么组成的?从日志来看,这两个请求似乎是部署后的第一个请求,可能是因为应用程序没有完全服务,或者流量仍然从以前的版本重定向而导致失败。您是在已部署应用程序时还是仅在新部署后遇到这些错误?
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
推荐阅读
- python - 腌制 Pyomo 表达式时如何修复“递归错误”
- css - CSS 填充仅在悬停后应用
- python - 使用 Pygame 加载位于子文件夹中的图像
- r - 如何使用 R Markdown HTML 输出从数据表中的排序中排除一行
- php - Codeigniter 通过按钮向数据表提交 Ajax 结果不起作用
- java - Hashmap 与 AssertEquals 不匹配
- python-3.7 - 如何在python中获取环境文件?
- c - 为什么 malloc 返回一个指针?
- spring-boot - 多个 Spring Kafka Consumer 一类 多组
- php - 以正确的方式在codeigniter中路由