nginx lua socket timeout 问题处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx lua socket timeout 问题处理相关的知识,希望对你有一定的参考价值。
参考技术A 2015/1/14日, 在192.168.2.209环境, web端进行大文件(300-500M)上传时, nginx经常报错. 错误信息如下:经过分析, 错误可能是一下原因导致的:
经过排查, 1,2,3这几个配置确实有问题, 可以优化的. 但改完后, 上传大文件还是报错. 以下是上面几点的优化配置:
优化了这几点后, 大文件上传成功的概率更高了, 但还不是100%. 经过更加仔细的研究nginx lua关于socket的 文档 , 我推断问题是上面的第4点. 即lua socket的tcpsock:send() 报了超时错误(也就是write timeout了). 这一点我是从文档中看出来的, 以下是我修改后的fastdfs.lua和uploader.lua
即现在connect, send, receive的timeout都是60s, 上传大文件全部成功了!
tcpsock:connect
tcpsock:send
tcpsock:set_timeout
tcpsock:set_keepalive
更新记录
Nginx配置socket转发TCP协议传输,记录一下
worker_processes 1;
events
worker_connections 1024;
http
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server
listen 8080;
server_name localhost;
location /
root html;
error_page 500 502 503 504 /50x.html;
location = /50x.html
root html;
stream
upstream socket
hash $remote_addr consistent;
server 127.0.0.1:15051 weight=1 ;
server
listen 8090;
proxy_connect_timeout 100s;
proxy_timeout 100s;
proxy_pass socket;
外部访问8090,nginx跳转到15051,nginx转发socket协议的配置写法,TCP协议传输
以上是关于nginx lua socket timeout 问题处理的主要内容,如果未能解决你的问题,请参考以下文章