【问题标题】:linux curl+nginx can't request with no keepalivelinux curl + nginx无法请求没有keepalive
【发布时间】:2014-07-24 02:39:57
【问题描述】:

我正在尝试向 localhost 发出状态请求,并在 error.log 文件中获取错误消息。你知道,如何解决这个问题? 或者它可能只是一个信息消息,它总是带有“no keepalive”数据包。

/usr/bin/curl --no-keepalive -s -m 3 http://127.0.0.1/server-status

/tmp/error.log

2014/07/24 06:03:23 [info] 18038#0: *198319 client 127.0.0.1 closed keepalive connection
2014/07/24 06:04:22 [info] 18038#0: *198398 client 127.0.0.1 closed keepalive connection

/tmp/access.log

127.0.0.1 - - [24/Jul/2014:06:03:23 +0400] "GET /server-status HTTP/1.1" 200 110 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
127.0.0.1 - - [24/Jul/2014:06:04:22 +0400] "GET /server-status HTTP/1.1" 200 110 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.15.3 zlib/1.2.3 libidn/1.18 libssh2/1.4.2"

/etc/nginx/nginx.conf

error_log       /var/log/nginx/error.log warn;
http {
    client_body_timeout     10;
    client_header_timeout   10;
    keepalive_timeout       5 5;
    send_timeout            10;
    include /etc/nginx/sites-enabled/*;
}

/etc/nginx/sites-enabled/localhost

server {
    listen localhost;
    server_name nginx_status.localhost;
    access_log      /tmp/access.log;
    error_log       /tmp/error.log info;
    location /server-status {
        stub_status     on;
        allow   127.0.0.1;
        deny    all;
    }
}

【问题讨论】:

  • 写成“关闭的keepalive连接”。所以,这意味着,这种连接是“keepalive”的。我不想要keepalive连接!

标签: curl nginx


【解决方案1】:

这不是错误。日志消息中的[info] 表示此消息是信息性的。如果您不想看到这些消息,请将error_log 指令中的日志级别设置为不太详细的级别,例如noticewarnerror

【讨论】:

  • 那么,你认为它总是带有“no keepalive”数据包吗?
  • HTTP keepalive 与 TCP keepalive 数据包分离且无关。
  • 感谢您的回答。我可以在“listen localhost”服务器上禁用 HTTP keepalive 吗?
  • 是的,我找到了,它有帮助! “keepalive_timeout 0”。谢谢!
  • 请记住,禁用 HTTP keepalive 会大大降低服务器的性能,因为您的浏览器现在必须为每个请求建立新连接。
【解决方案2】:

如果您访问的次数足够少,您可以为状态连接禁用 HTTP keepalive:

/etc/nginx/sites-enabled/localhost

server {
    listen localhost;
    server_name nginx_status.localhost;
    access_log      /tmp/access.log;
    error_log       /tmp/error.log info;
    location /server-status {
        stub_status     on;
        keepalive_timeout 0;    # Disable HTTP keepalive
        allow   127.0.0.1;
        deny    all;
    }
}

感谢黄昏。

【讨论】:

    猜你喜欢
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2019-12-22
    • 2022-01-01
    • 2011-12-27
    • 1970-01-01
    • 2020-06-02
    相关资源
    最近更新 更多