经常遇到一些监听地址不是 IP:Port
而是 Unix Socket
的程序,这些程序如果使用的是 HTTP
协议,Unix Socket
接口也可以用 curl
访问的。
例如 ingress-nginx
的监听地址为 unix:/tmp/nginx-status-server.sock
。
1 | server { |
用 curl
访问它的 Unix Socket
的方法如下:
1 | $ curl --unix-socket /tmp/nginx-status-server.sock http://localhost/nginx_status |
这里 --unix-socket
参数是用来指定 Unix Socket 文件的地址, http://localhost/nginx_status
为要请求的路径。
注意: localhost 可以根据实际情况更改成其它值但不可省略,如果省略后请求就变成
http://nginx_status
,那么nginx_status
会被认作是Host
,Path
被认为是/
1 | $ curl -v --unix-socket /tmp/nginx-status-server.sock http://nginx_status |
本文转载自:「小鸟技术笔记」,原文:https://tinyurl.com/y6p32tk3,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。