Nginx proxy_pass比直接下载快得多

时间:2012-07-13 04:36:10

标签: performance nginx

我在主机上有一个java web服务器

http://192.168.0.1:80

此主机不是本地,它是通过VPN从互联网访问的。我在主机上有文件:

http://192.168.0.1:80/100mbFile.zip

当我直接用Opera或Firefox下载时,我的下载速度为32-35 kb / s。

但是当我使用本地安装的Nginx访问此文件时,x3的速度会更快。配置是这样的:

# I simplify the config removing unnesessary information from it.
server {
        listen       8080;
        server_name  nginx.local;

        location /download {
            rewrite /download /auth_download last;
            # /auth_download return X-Accell-Redirect to /internal_download
        }

        location /internal_download {
            proxy_intercept_errors on;
            proxy_pass http://192.168.0.1:80/100mbFile.zip;
        }
    }
}

以约140 kb / s的速度下载文件。为什么?总结:

Opera -> http://192.168.0.1:80/100mbFile.zip - ~35kb/s
Opera -> http://nginx.local:8080/download (Local Nginx proxy_pass) - ~140kb/s

怎么可能? Nginx本地安装在127.0.0.1上,互联网连接相同,带宽也一样。一切都是一样的。 Nginx conf中没有使用缓存。我的操作系统是Windows XP

1 个答案:

答案 0 :(得分:0)

Nginx缓存内容,因此它不需要磁盘IO,因此可以更快地从内存中提供服务。

请参阅此文https://web.archive.org/web/20120622205256/http://mark.ossdl.de/2009/07/nginx-to-create-static-files-from-dynamic-content/