Velocidade de upload muito lenta com o nachex proxying apache

2

Eu tenho um servidor nginx proxying apache no meu servidor, e a configuração está funcionando bem ... Até ontem, quando eu descobri que, na verdade, fazer o upload de um arquivo usando um script PHP é muito lento. Como o upload direto usando o Apache (em outra porta) ainda é muito rápido, cheguei a uma conclusão de que o duo nginx + apache é o culpado. O problema é que eu não sei como consertar isso ...

Este é o meu nginx.conf

user apache;
worker_processes 16;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    server_tokens off;
    include       mime.types;
    default_type  application/octet-stream;

    server_names_hash_bucket_size 128;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    tcp_nodelay        on;
    gzip              on;
    gzip_comp_level   5;
    gzip_http_version 1.0;
    gzip_min_length   0;
    gzip_types        text/plain text/css image/x-icon application/x-javascript;
    gzip_vary         on;

    client_header_timeout 10m;
    client_body_timeout 10m;
    send_timeout 10m;

    fastcgi_read_timeout 600;
    fastcgi_send_timeout 600;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Meu arquivo proxy.conf tem esta aparência:

proxy_redirect          off;
proxy_set_header        Host            $host;
proxy_set_header        X-Real-IP       $remote_addr;
proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        X-Forwarded-Protocol  $scheme;
client_max_body_size    500m;
client_body_buffer_size 256k;
client_header_buffer_size 1k;
proxy_connect_timeout   1200s;
proxy_send_timeout      1200s;
proxy_read_timeout      1200s;
proxy_buffer_size       128k;
proxy_buffers           4 256k;
proxy_busy_buffers_size 256k;

E, se for importante, as regras de iptable:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:20
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:21
ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20000
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:10000
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:993
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:143
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:995
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:110
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:53
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:587
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:25
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Além disso, é curioso que o upload via nginx proxying thin (Ruby on Rails) ainda seja normal. O problema só acontece com aqueles Apache + nginx, não qualquer outra coisa.

Algum de vocês já experimentou isso antes? Agradecemos antecipadamente.

EDIT: Para dar mais detalhes, para um arquivo de 8MB, a barra de status do Chrome revela que o upload dos primeiros 15% sempre acontece muito rápido. O progresso então começa a desacelerar para sempre.

    
por An Phan 10.03.2015 / 10:09

0 respostas