Nginx + Apache = Imagecashe, помогите победить не генерируются картинки

Главные вкладки

Аватар пользователя veshiyi veshiyi 9 декабря 2011 в 23:24

Весь интернет облазил. Методом тыка подстановка вариантов из интернета не работает.
есть три конфига где к примеру название сайта test.ru на НикХосте какой надо править и что вставить наверняка:

Nginx в качестве front-end для посетителей сайтов. Back-end’ом будет выступать Apache.

/home/test/etc/nginx/test.vhost.conf

/home/test/etc/rc.d/nginx

/home/test/nginx/nginx.conf

/home/test/test.ru/conf/virtyal.conf.manual

Плиз!!!

Комментарии

Аватар пользователя bsyomov bsyomov 9 декабря 2011 в 23:50

В nginx надо сделать в настройках соoтвествующего хоста локейшен типа такого:

location ~* /files/imagecache/.+\.(png|jpeg|jpg|gif)$ {
  try_files $uri /index.php?q=$uri;
  expires max;
}
Аватар пользователя veshiyi veshiyi 10 декабря 2011 в 0:01

немого дописал вот так или не стоит?

location ~ ^/sites/.*/files/imagecache/.+\.(png|jpeg|jpg|gif)$ {
try_files $uri /index.php?q=$uri;
expires max;
}

Подскажите пожалуйста и в какой из четырех конфигов вставить этот код?

Аватар пользователя veshiyi veshiyi 10 декабря 2011 в 1:11

все спасибо большое заработало!!!!!!!!!!!!!!! ROFL

вот часть конфига nginx.conf может пригодиться кому нибудь

# NGINX Server configuration

worker_processes 2;
timer_resolution 100ms;
worker_rlimit_nofile 10000;
worker_rlimit_sigpending 32768;
worker_priority -10;

error_log /home/test/logs/error.log;

pid /home/test/logs/nginx.pid;

events {
worker_connections 3000;

}

http {
include /usr/local/etc/nginx/mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 64;

#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 /home/test/logs/access.log combined;

sendfile on;
sendfile_max_chunk 128k;
access_log off;
log_not_found off;
tcp_nopush on;
tcp_nodelay on;
reset_timedout_connection on;
server_tokens off;
gzip on;
gzip_static on;
gzip_buffers 12 32k;
gzip_types text/plain application/x-javascript text/css text/xml;
keepalive_timeout 7;
client_header_timeout 3m;
client_body_timeout 3m;
client_max_body_size 500m;
client_body_buffer_size 128k;

# First Site configuration

#SERVER_TEMPLATE

server {
listen 111.222.333.111:80;
server_name test.ru www. test.ru;

#charset koi8-r;

access_log /home/foodle/logs/access.log combined;

location / {

proxy_pass http:// 111.222.333.111:8080;
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;

client_max_body_size 10m;
client_body_buffer_size 128k;

proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;

proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}

location ~ ^/sites/.*/files/backup_migrate/manual/ {
deny all;
}
location ~ ^/sites/default/files/imagecache/.+\.(png|jpeg|jpg|gif)$ {
try_files $uri /index.php?q=$uri;
expires max;
}
# Static files location
location ~* ^.+\.(jpg|jpeg|gif|png|ico|mp3|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|dat|avi|ppt|txt|tar|mid|midi|wav|bmp|rtf|wmv|mpeg|mpg|tbz|js)$ {
root /home/test/test.ru/docs/$subdomain;
access_log off;
expires 30d;
set $subdomain "";

if ($host ~* ^([a-z0-9-\.]+)\.test.ru$) {
set $subdomain "subdmn/$1";
}
if ($host ~* ^www.test.ru$) {
set $subdomain "";
}

}
}

Аватар пользователя veshiyi veshiyi 10 декабря 2011 в 1:14

bsyomov wrote:
В тот, в котором описан нужный vhost или его локешены. Точнее по вашим данным не скажу.

Спасибо БОЛЬШОЕ!!! помогло вставил в nginx.conf
/home/test/nginx/nginx.conf

Аватар пользователя DenisVS DenisVS 7 августа 2012 в 11:03

Кто, о чём?

В общем, судя по заголовку, отвечаю.
Надо создать локейшн, который бы обрабатывал 404 ошибку. Картинки генерируются скриптом, потому они не отдаются nginx, их попросту негде брать. Значит, при возникновении 404 должен запрашиваться Апач.