2 allus0918 allus0918 于 2016.05.03 20:47 提问

nginx重复发送请求到服务器

在测试环境进行nginx配置时,为防止超时,全部把超时参数配置为10分钟。但是在拉取数据时还是到60S后就报错,提示“数据正在下载中,请稍后再试“,表明已在缓存中。
目前怀疑是nginx重复发送请求(或者请求超时之后,nginx把请求转发给另一台服务器)所致,因为跳过nginx服务器拉取数据是正常的。
配置如下:
http {
include mime.types;
default_type application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  log/main-access.log  main;

sendfile        on;
tcp_nopush      on;
tcp_nodelay        on;
keepalive_timeout  600;
lingering_timeout  600;
send_timeout  600;

gzip  on;
gzip_min_length 1k;
gzip_buffers    8 32k;
gzip_comp_level 6;
gzip_types text/html text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;


client_max_body_size 8m;
client_body_buffer_size   256k;
client_header_timeout 600;
client_body_timeout  600;

proxy_next_upstream  off;
proxy_connect_timeout  600;
proxy_send_timeout   600;
proxy_read_timeout   600;
proxy_buffer_size   128k;
proxy_buffers   8 256k;
proxy_busy_buffers_size   256k;
proxy_temp_file_write_size  256k;

upstream web1 {
    server ip:port;
}

upstream web2 {
    server ip:port;
}

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        proxy_pass  http://web1;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        index  index.html index.jsp login.jsp index.htm;

        #root   html;
        #index  index.html index.htm;
    }

    location /admin {
        proxy_pass  http://web2;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        index  index.html index.jsp login.jsp index.htm;
    }
    ...
}
...

}

请教一下,如果避免nginx重复请求,该怎么设置?
或者nginx转发请求给另一台服务器,又该怎么设置?
如果问题不是出在这里,那么该怎么分析并解决这个问题?

nginx接触不久,很多配置还都不熟悉,恳请对nginx了解的大神能不吝指教,拜谢。

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.05.03 21:45

查看nginx的error log等看是否有超时等然后看后台服务器相关日志 是如何处理的

allus0918
allus0918   2016.05.04 11:34

引用1楼
“查看nginx的error log等看是否有超时等然后看后台服务器相关日志 是如何处理的”

我不知道是不是没有设置重复发送请求在error.log中打日志,但是我实时检测该日志,在提示报错的时候是没有error日志打出来的,有点郁闷

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!