我正在寻找一种解决方案,通过Nginx(v1.2.9)尽快(通过最低开销)保存通过http(例如作为POST)发送的数据.我尝试了以下Nginx配置,但没有看到目录中写入的任何文件:
server {
listen 9199;
location /saveme {
client_body_in_file_only on;
client_body_temp_path /tmp/bodies;
}
}
我究竟做错了什么?和/或有更好的方法来实现这一目标吗? (理想情况下,写入的数据应该是每个请求一个文件,如果它本质上是“原始”的则无关紧要.文件的后处理将通过队列通过单独的进程完成.)
最佳答案
这个问题已经是answered here了:
基本上,您需要结合使用log_format和fastcgi_pass.然后,您可以使用access_log指令来指定应将保存的变量转储到的位置.
location = /saveme {
log_format postdata $request_body;
access_log /var/log/Nginx/postdata.log postdata;
fastcgi_pass PHP_cgi;
}
它也可以用你的方法,但我认为你缺少client_body_buffer_size和`client_max_body_size
原文地址:https://www.jb51.cc/nginx/434481.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。