【问题标题】:Identify Internal Request Nginx + NodeJS Express识别内部请求 Nginx + NodeJS Express
【发布时间】:2018-01-16 04:08:27
【问题描述】:

我有一个使用 Express 框架的 NodeJS API。

我使用 Nginx 在我的 NodeJS 实例之间进行负载平衡。我使用 PM2 来生成 NodeJS 实例。

我在日志中发现 Ngnix 发出了一些“虚拟/内部”请求,可能是为了确定实例是否开启(心跳请求可能是此请求的适当名称)。

我的问题是:在我的 API 上识别这些“虚拟/内部”请求的正确方法是什么?

【问题讨论】:

    标签: node.js express nginx


    【解决方案1】:

    我相当肯定 nginx 只对上游服务器使用被动健康检查。换句话说——因为假设所有 HTTP 请求都会产生响应,所以 nginx 会说“如果我向这个服务器发送一堆请求并且没有得到响应,我会认为服务器不健康”。

    你能分享一些你看到的请求的访问日志吗?

    据我所知,nginx不会向上游服务器发送任何最终不是由客户端发起的请求。

    【讨论】:

    • http:clientHost:191.XXX contentType:application/json json:level:info logId:e07230e902f18c7fb8862358ef256555 时间戳:2017-08-08T13:33:59.856Z 请求:ip:::ffff:127.0。 0.1 方法:GET originalUrl:/ requestId:e07230e902f18c7fb8862358ef256555 标头:accept:*/* connection:upgrade host:191.XXX user-agent:curl/7.17.1 (mips-unknown-linux-gnu) libcurl/7.17.1 OpenSSL/ 0.9.8i zlib/1.2.3 x-request-id:e07230e902f18c7fb8862358ef256555
    • 上面的日志是一个被 nginx 自动发起的请求示例。
    • 为什么你认为这是由 nginx 发起的?
    • 因为是本地主机请求 user-agent:curl/7.17.1 而我没有对它提出任何请求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 2018-06-10
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-26
    相关资源
    最近更新 更多