proxy_store takes long time fetching from the upstream
Pahud
pahudnet at gmail.com
Mon Dec 29 10:33:50 MSK 2008
Hi list,
this is my config
----------------------------
user nginx nginx;
worker_processes 8;
error_log /var/log/nginx/error_log info;
events {
worker_connections 8192;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';
client_max_body_size 10m;
client_body_buffer_size 256k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 10 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
upstream backend{
server 192.168.172.254:3128;
}
server {
listen 127.0.0.1:8888;
server_name localhost;
access_log /var/log/nginx/localhost.access_log main;
error_log /var/log/nginx/localhost.error_log debug;
proxy_temp_path /cache/temp;
root /cache/$host;
location / {
index index.shtml;
error_page 404 = /fetch$uri;
}
location /fetch{
internal;
proxy_pass http://backend;
proxy_store on;
proxy_store_access user:rw group:rw all:rw;
proxy_set_header Host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header Via "pahud/nginx";
#proxy_buffering off;
alias /cache/$host;
}
}
}
----------------------------
so nginx is listening on localhost:8888 and when trying to fetch a missing
jpg it goes to upstream proxy to fetch it. So I made a try here:
pahud at gentoo-9 ~ $[15:24:07] time curl -L -v
http://farm4.static.flickr.com/3081/3144192428_7dcf9da972.jpg -x
127.0.0.1:8888 -o /dev/null
* About to connect() to proxy 127.0.0.1 port 8888 (#0)
* Trying 127.0.0.1... connected
* Connected to 127.0.0.1 (127.0.0.1) port 8888 (#0)
> GET http://farm4.static.flickr.com/3081/3144192428_7dcf9da972.jpg HTTP/1.1
> User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g
zlib/1.2.3
> Host: farm4.static.flickr.com
> Pragma: no-cache
> Accept: */*
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 OK
< Server: nginx/0.7.30
< Date: Mon, 29 Dec 2008 07:24:10 GMT
< Content-Type: image/jpeg
< Connection: keep-alive
< Last-Modified: Sun, 28 Dec 2008 13:32:53 GMT
< Accept-Ranges: bytes
< Content-Length: 165659
< Expires: Mon, 28 Jul 2014 23:30:00 GMT
< Cache-Control: max-age=315360000
< X-Cache: HIT from photocache416.flickr.gq1.yahoo.com
< X-Cache-Lookup: HIT from photocache416.flickr.gq1.yahoo.com:80
< X-Cache: MISS from gateway.office
< Via: 1.1 photocache416.flickr.gq1.yahoo.com:80 (squid/2.7.STABLE2), 1.0
gateway.office:3128 (squid/2.6.STABLE12)
<
{ [data not shown]
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left
Speed
100 161k 100 161k 0 0 2695 0 0:01:01 0:01:01 --:--:--
3893* Connection #0 to host 127.0.0.1 left intact
* Closing connection #0
real 1m1.462s
user 0m0.000s
sys 0m0.004s
Well, it took 1m 1.462s to complete. But if I directly fetch from my
upstream server:
pahud at gentoo-9 ~ $[15:26:26] time curl -L -v
http://farm4.static.flickr.com/3081/3144192428_7dcf9da972.jpg -x
192.168.172.254:3128 -o /dev/null
* About to connect() to proxy 192.168.172.254 port 3128 (#0)
* Trying 192.168.172.254... connected
* Connected to 192.168.172.254 (192.168.172.254) port 3128 (#0)
> GET http://farm4.static.flickr.com/3081/3144192428_7dcf9da972.jpg HTTP/1.1
> User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.8g
zlib/1.2.3
> Host: farm4.static.flickr.com
> Pragma: no-cache
> Accept: */*
> Proxy-Connection: Keep-Alive
>
* HTTP 1.0, assume close after body
< HTTP/1.0 200 OK
< Last-Modified: Sun, 28 Dec 2008 13:32:53 GMT
< Accept-Ranges: bytes
< Content-Length: 165659
< Content-Type: image/jpeg
< Date: Mon, 29 Dec 2008 07:26:42 GMT
< Server: Apache/2.0.52 (Red Hat)
< Expires: Mon, 28 Jul 2014 23:30:00 GMT
< Cache-Control: max-age=315360000
< X-Cache: HIT from photocache416.flickr.gq1.yahoo.com
< X-Cache-Lookup: HIT from photocache416.flickr.gq1.yahoo.com:80
< X-Cache: MISS from gateway.office
< Via: 1.1 photocache416.flickr.gq1.yahoo.com:80 (squid/2.7.STABLE2), 1.0
gateway.office:3128 (squid/2.6.STABLE12)
* HTTP/1.0 proxy connection set to keep alive!
< Proxy-Connection: keep-alive
<
{ [data not shown]
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left
Speed
100 161k 100 161k 0 0 25465 0 0:00:06 0:00:06 --:--:--
34140* Connection #0 to host 192.168.172.254 left intact
* Closing connection #0
real 0m6.514s
user 0m0.000s
sys 0m0.000s
Only 6 seconds!!
Can someone tell me how can I find the bottleneck?
pahud
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20081229/0b2faa1f/attachment.html>
More information about the nginx
mailing list