Nginx сжирает всю память при кэшировании

X-Thief nginx-forum на nginx.us
Вс Мар 25 21:59:32 UTC 2012


Имеется сервер с 1гб ОЗУ, при включенном
кэшировании жрет до 900мб памяти, что
плохо влияет на работу сайта

Уж очень нужно это кэшировании для
гостей сайта, т.к. конкуренты бывает
поддосят иногда.

Как уменьшить количество сжираемой
оперативки? Или это так и нужно?

Собственно конфиг:


user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;
  proxy_cache_path /var/cache/nginx levels=2 keys_zone=pagecache:15m
inactive=30s max_size=500m;
    access_log	/var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
	include /usr/local/ispmgr/etc/nginx.domain;
	client_max_body_size 2M;
	log_format isp '$bytes_sent $request_length';
	server {
		server_name domen.ru www.domen.ru;
		listen domen.ru;
		
		proxy_temp_path /var/cache/nginx/domen.ru;
		
		 location @nocached {

 proxy_pass http://domen:81;
 proxy_redirect http://domen:81/ /;
 proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Real-IP $remote_addr;
 }
		location ~*
^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$
{
		expires 1m;
			root /var/www/domen/data/www/domen.ru;
			access_log /var/www/nginx-logs/domen isp;
			access_log /var/www/httpd-logs/domen.ru.access.log ;
			error_page 404 = @fallback;
		}
		location / {
			proxy_pass http://domen:81;
			proxy_redirect http://domen:81/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		

 if ($cookie_КУКА) { return 412; }
 if ($request_method = POST ) {
 return 412;
 }

 error_page 412 = @nocached;
 proxy_cache pagecache;
 proxy_cache_key
"$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";
 proxy_hide_header "Set-Cookie";
 proxy_ignore_headers "Cache-Control" "Expires";
 proxy_cache_valid 200 302 304 30s;
 proxy_cache_valid 301 5m;
 proxy_cache_valid 503 4s;
 proxy_cache_valid any 1m;
 proxy_cache_use_stale http_502 http_503 http_504;
}

location ~ (login.php) { 
 proxy_pass http://domen:81;
 proxy_redirect http://domen:81/ /;
 proxy_set_header Host $host;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Real-IP $remote_addr;
 }
		location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
			proxy_pass http://domen:81;
			proxy_redirect http://domen:81/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location @fallback {
			proxy_pass http://domen:81;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		include /usr/local/ispmgr/etc/nginx.inc;
	}
}

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,224364,224364#msg-224364



Подробная информация о списке рассылки nginx-ru