Linux运维命令Curl - 日常用法总结

Linux运维命令Curl - 日常用法总结,第1张

在Linux系统中,curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载 *** 作,是综合传输工具,习惯上称url为下载工具。下面就日常运维中基于curl命令使用做下总结

一、Curl命令用法

1. curl语法和参数选项

# curl [option] [url]

curl常见参数

2. curl使用说明

curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。它支持多种协议,下面说下curl命令的日常使用示例:

3. curl上传文件的用法(POST请求方式)

一般来说,我们都会用curl下载网页,但是curl上传文件则不常用。下面说下curl模拟"multipart/form-data"形式的form上传文件, 命令稍稍复杂些。

4. curl常用示例

5. curl命令的超时时间

二、Curl的GET、POST、PUT、DELETE请求

1. GET、POST、PUT、DELETE含义与区别

2. GET、POST、PUT、DELETE四种请求方式的curl访问

通过linux curl 命令和php脚本的curl请求一个接口地址,返回的json数据比较大,结果只获取到部分数据,并且linux curl终端还报了个错,如下:

curl: (18) transfer closed with outstanding read data remaining

怀疑服务端有异常,查看nginx日志发现

nginx[warn]:an upstream response is buffered to a temporary

虽然是个warn,但出现问题的时候也一样要警示。

于在nginx.conf 的http 里加入如下一段:

加大buffer的配置,居然没管用

后经查,负载均衡采用的nginx反向代理,于是到nginx代理服务器上,http里加入如下一段:

问题解决。

分析:

Nginx 的 buffer 机制,对于来自 FastCGI Server 的 Response,Nginx 将其缓冲到内存中,然后依次发送到客户端。缓冲区的大小由 fastcgi_buffers 和 fastcgi_buffer_size 两个值控制。fastcgi_buffer_size 则是处理 Response 时第一个缓冲区的大小,不包含在fastcgi_buffers中,如上配置

最大内存缓冲区大小是 8 * 128 + 4 = 1028K

当 Response的内容 小于等于 1028K 时,所有数据当然全部在内存中处理。如果 Response 大于 1028K ,多出来的数据会被临时写入到文件中,放在fastcgi_temp目录下面。此时会在看到类似如下 warning:

这个值太小,Nginx 会频繁读写硬盘,影响性能,太大也不好,会吃掉内存,所以根据实际Response的内容大小来定。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11464109.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存