巧用 Curl 命令测试 Unix Socket 接口

公众号关注 「奇妙的 Linux 世界」

设为「星标」,每天带你玩转 Linux !



经常遇到一些监听地址不是 IP:Port 而是 Unix Socket 的程序,这些程序如果使用的是 HTTP 协议,Unix Socket 接口也可以用 curl 访问的。

例如 ingress-nginx 的监听地址为 unix:/tmp/nginx-status-server.sock

server {
        listen unix:/tmp/nginx-status-server.sock;
        set $proxy_upstream_name "internal";

        keepalive_timeout 0;
        gzip off;

        access_log off;

        location /healthz {
                return 200;
        }

        location /nginx_status {
                stub_status on;
        }
        ... 省略...
}

curl 访问它的 Unix Socket 的方法如下:

$ curl --unix-socket /tmp/nginx-status-server.sock http://localhost/nginx_status
Active connections: 77
server accepts handled requests
 64273 64273 971368
Reading: 0 Writing: 12 Waiting: 65

这里 --unix-socket 参数是用来指定 Unix Socket 文件的地址, http://localhost/nginx_status 为要请求的路径。

注意: localhost 可以根据实际情况更改成其它值但不可省略,如果省略后请求就变成 http://nginx_status,那么 nginx_status 会被认作是 HostPath 被认为是 /

$ curl -v  --unix-socket /tmp/nginx-status-server.sock http://nginx_status
* Expire in 0 ms for 6 (transfer 0xe464ab3dd0)
*   Trying /tmp/nginx-status-server.sock...
* Expire in 200 ms for 4 (transfer 0xe464ab3dd0)
* Connected to nginx_status (/tmp/nginx-status-server.sock) port 80 (#0)
> GET / HTTP/1.1
> Host: nginx_status
> User-Agent: curl/7.64.0
> Accept: */*

本文转载自:「小鸟技术笔记」,原文:https://tinyurl.com/y6p32tk3,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。


你可能还喜欢

点击下方图片即可阅读

一文搞懂 Redis 的三种集群方案

点击上方图片,打开小程序,加入「玩转 Linux」圈子

更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值