Прошу помощи по настройке nginx

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Kerm
рядовой
Сообщения: 10
Зарегистрирован: 2012-06-09 8:32:38

Прошу помощи по настройке nginx

Непрочитанное сообщение Kerm » 2012-11-15 18:00:48

Буду весьма благодарен если кто ни будь поможет с такой проблемой:

Есть интернет-магазин на платной cms от "све-арт", cms конечно полный ацтой, но сайт делался за бабло и у фирмы основной интернет-магазин на этой cms и давно...

Особенность этой cms что в ней идут не прямые ссылки на картинки товаров, а через какую то хрень, которая забирает картинки из кеша картинок, который делает сама cms, сжимает гзипом картинки, кладет в другую папку подписывая их по id и убирая напрочь расширение файлов у них и делая ссылку на картинки такого вида:

<img alt="" src="viewImg.php?img_id=40828&width=210&height=280&tabname=Goods" style="cursor:pointer;" width="210" height="280">

или так:

<img alt="" src="viewImg.php?img_id=40828&width=390&height=520&tabname=Goods" width="390" height="520">

И я не могу добиться того чтобы nginx закешировал такие картинки, я всегда получаю "200 ОК" при каждом обновлении страницы в браузере...

Что мне нужно сделать чтобы nginx закешировал эти картинки?


Вот код который прописан в nginx:

Код: Выделить всё

user nginx;

# Число рабочих процессов, рекомендуется ставить по количеству ядер
worker_processes 2;
worker_cpu_affinity 0101 1010;

# Уменьшает число системных вызовов gettimeofday(), что приводит к увеличению производительности
timer_resolution 100ms;

# Изменяет ограничение на число используемых файлов RLIMIT_NOFILE для рабочего процесса.
worker_rlimit_nofile 8192;

# Директива задаёт приоритет рабочих процессов от -20 до 20 (отрицательное число означает более высокий приоритет). 
worker_priority -10;

error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;

pid /var/run/nginx.pid;


events {
		worker_connections  4096;
		use epoll;
}


http {
		reset_timedout_connection on;
		client_header_timeout 15;
		client_body_timeout 15;
		send_timeout 5;
		keepalive_timeout 30 15;
		
		include mime.types;
		default_type application/octet-stream;
		
		proxy_ignore_headers Expires Cache-Control; 
		
		proxy_cache_path /var/cache/nginx/cache/site levels=1:2 keys_zone=two:16m inactive=7d max_size=512m;
		
		
		proxy_temp_path /var/cache/nginx/temp;
		
		proxy_buffering on;
		proxy_buffer_size 64k;
 	    proxy_buffers 16 64k;
		
		
#После скольких запросов результат запроса попадет в кеш
		proxy_cache_min_uses 1;
		
#Кешировать результат выполнения запроса с кодом 200, 301 и 302 на 30 минут
	    proxy_cache_valid 200 301 302 1h;
	    proxy_cache_valid 404 500 501 502 503 504 505 506 507 509 510 1m;
	    proxy_cache_valid any 1m;

		
#При получении от бекэнда одного из перечисленных кодов
#ответов разрешается использовать "несвежий"
#кешированный результат выполнения запроса. 
		proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
		
		client_header_buffer_size 1k;
		large_client_header_buffers 4 4k;
		server_tokens off;

		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  logs/access.log  main;
		access_log off;

		gzip off;
	    #gzip_static on;
		#gzip_min_length 1100;
		#gzip_proxied expired no-cache no-store private auth;
		#gzip_buffers 64 8k;
		#gzip_http_version 1.1;
		#gzip_types text/plain application/xml application/x-javascript text/javascript text/css;
		#gzip_disable "msie6";
		#gzip_disable Firefox/([0-2]\.|3\.0);
		#gzip_disable Chrome/2;
		#gzip_disable Safari;
		#gzip_comp_level 3;
		limit_conn_zone   $binary_remote_addr  zone=addr:10m;
		
	    client_max_body_size 10M;
		
		
		charset on;
		sendfile on;
		tcp_nopush on;
		tcp_nodelay on;
		output_buffers 2 64k;
		
		include blockips.conf;
		
		log_format  isp '$bytes_sent $request_length';

server {
     listen xxx.xxx.xxx.xx:80;
     server_name www.site.ru;
     rewrite ^ http://site.ru$request_uri? permanent; #301 redirect
}
	server {
		listen xxx.xxx.xxx.xx:80;
		server_name site.ru;
		proxy_temp_path /var/cache/nginx/site.ru;
		rewrite ^(/manager/.*)$	https://$host$1	permanent;
		rewrite ^(/myadmin/.*)$	https://$host$1	permanent;
		rewrite ^(/phpmyadmin/.*)$	https://$host$1	permanent;
		error_page 404 = @fallback;
		charset windows-1251;
		location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
			proxy_pass http://xxx.xxx.xxx.xx:8080;
			proxy_redirect http://site.ru:8080/ /;
			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 / {
			proxy_pass http://xxx.xxx.xxx.xx:8080;
			proxy_redirect http://site.ru:8080/ /;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Real-IP $remote_addr;
 	        proxy_buffer_size 16k;
 	        proxy_buffers 16 16k;
		    proxy_busy_buffers_size 64k;
		    proxy_temp_file_write_size 64k;
			proxy_cache_valid 200 1h;
		    open_file_cache max=1024 inactive=600s;
		    open_file_cache_valid 2000s;
		    open_file_cache_min_uses 1;
		    open_file_cache_errors on;
			proxy_cache two;
			proxy_cache_use_stale updating error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
		    proxy_cache_key "$host$uri?$args$cookie_uid$cookie_autol$cookie_autop";
		    proxy_no_cache $cookie_orderData $cookie_nocache  $arg_nocache $arg_comment;
		    proxy_cache_bypass $cookie_orderData $cookie_nocache  $arg_nocache $arg_comment;
			index index.php;
		}
		
		location ~* ^.+\.(jpg|jpeg|gif|png|ico)$ {
			root /var/www/emall/data/www/site.ru;
		    expires         5d;
		    access_log      off;
			add_header Cache-Control public;
		}
		location ~* ^.+\.(js|css) {
		    root /var/www/emall/data/www/site.ru;
			access_log      off;
			add_header Pragma "no-cache";
		    expires -1;
			add_header Last-Modified "Thu, 1 January 1970 00:00:00 GMT";
			add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
		}
		location ~* ^.+\.(html|htm|shtml|txt|htc)$ {
			root /var/www/emall/data/www/site.ru;
			expires         5m;
			add_header Pragma "no-cache";
		    add_header Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0";
			access_log      off;
		}
		location /images/ {
		    expires         5d;
			root /var/www/emall/data/www/site.ru;
		    access_log      off;
			add_header Cache-Control public;
		}
		location @fallback {
			proxy_pass http://xxx.xxx.xxx.xx:8080;
			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 ~ /\.ht {
            deny all;
		}
		}

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/


Аватара пользователя
bagas
лейтенант
Сообщения: 922
Зарегистрирован: 2010-08-18 19:49:01
Откуда: Воронеж
Контактная информация:

Re: Прошу помощи по настройке nginx

Непрочитанное сообщение bagas » 2012-11-21 20:48:07

я такой локейшен использую.

Код: Выделить всё

location ~* ^.+\.(jpg|jpeg|gif|png|bmp|css|js|swf)$ {
        root /home/rpt/web/foryou.ru/web;
        access_log off;
    }
Что бы ты не делал , жизнь слишком коротка!
Блог о BSD системах.