# Fckeditor, так же не завелся как и Imagecache
location /sites/all/modules/fckeditor/{ if(-f $request_filename){break; }
rewrite ^(.*)$ /index.php?q=$1 last; }
Сути проблемы не понял. Там где у меня стоит nginx никогда ни с какими картинками проблем не было.
Выводы: нет проблем в связке nginx+imagecache, есть проблема в настройках nginx
у вас что много лишнего, зачем вы передаете все с / через proxy_ .!
вы же говорите отказались от апача,
удалите все со своего конфига и поставьте мой конфиг.
Что бы обрабатывался пхп установите lighttpd только с одной опцией spawn-fcgi, чтоб работала "location ~ \.php$ { fastcgi_pass 127.0.0.1:9099; ....... "
Если у вас конфигурация с апачем то это другое дело, так и скажите поможем. Но я привел пример конфига nginx без апача.
Ну правильно
кто тебе делал конфиг ? хостер ?
во первых у тебя нет строчки "index index.php;" у тебя вообще сервер nginx не знает какие ему файлы поднимать и обрабатывать. про остальное я пока помолчу потому что бредятина написана, но теоретически может работать.
Если и правда читали маны nginx, то должны были видеть что на данный момент рекомендуется использовать директиву try_files (появилась с версии 7.5.1) вместо "прямой трансляции правил" Как переписать апачевские правила для Drupal. Тут рабочий пример
Комментарии
Ищите здесь на сайте по словам nginx imagecache - были решения.
Не ищите адекватного решения не найдете я занимался поясками неделю пока сам не покурил маны nginx. Копать надо конфиг nginx.
И вот мой рабочий конфиг, предложите его хостеру или вставте в секцию server:
пример конфига приведен для nginx без апача.
не забудьте поменять все пути на ваши.
client_max_body_size 16m; # разрешенный размер файла для загрузки
listen "IP адрес сервера":80;
server_name "ваш домен".ru www."ваш домен".ru;
access_log /usr/local/nginx/logs/"ваш домен".log;
root /home/www/"ваш домен".ru/htdocs; # Здесь меняем путь в вашелу каталогу с сайтом
index index.php;
location = / { rewrite . /index.php last; } # чтение корня и отдача все в index.php, обязательно
location / { rewrite ^(.*)$ /index.php?q=$1 last; } # Для чистых ссылок
# Понадобилось для PhpMyAdmin
location = /my/ { rewrite . /my/index.php last; }
# Imagecache (http://drupal.org/project/imagecache)
location /sites/default/files/imagecache/ {
if (-f $request_filename) { break; }
rewrite ^(.*)$ /index.php?q=$1 last;
}
# Fckeditor, так же не завелся как и Imagecache
location /sites/all/modules/fckeditor/ {
if (-f $request_filename) { break; }
rewrite ^(.*)$ /index.php?q=$1 last;
}
# server static files directly
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|swf)$ {
rewrite ^/favicon.ico$ /sites/all/themes/"ваша тема"/favicon.ico break;
access_log off;
expires 30d;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9099; # передаем все пхп на пхп обработчик
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/"ваш сайт"/htdocs$fastcgi_script_name;
include /usr/local/nginx/conf/fastcgi_params;
}
location ~ /\.ht {
deny all;
}
error_page 403 405 /403.html;
location = /403.html {
root /home/www/root/errors/;
}
error_page 404 /404.html;
location = /404.html {
root /home/www/root/errors/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /home/www/root/errors/;
}
}
спасибо, буду курить
В общем возможно вам надо просто добавить только вот такую локацию в конфиг:
if (-f $request_filename) { break; }
rewrite ^(.*)$ /index.php?q=$1 last;
}
может и не помочь это будет зависеть от общей структуры вашего конфига.
Сути проблемы не понял. Там где у меня стоит nginx никогда ни с какими картинками проблем не было.
Выводы: нет проблем в связке nginx+imagecache, есть проблема в настройках nginx
Суть проблемы, то что я вообще отказался от апача...
И собственно нужно решение: переписать правила по выводу картинок для nginx
на данный момент структура такая:
listen ***.***.***.***:80;
server_name *****.com www.******.com ;
access_log /var/log/httpd/domains/*****.com.log main;
error_log /var/log/httpd/domains/*****.com.error.log error;
location ~* ^.+\.(php)$ {
fastcgi_pass unix:/tmp/php.sevstyle.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/sevstyle/domains/******.com/public_html$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
location / {
proxy_pass http://***.***.***.***: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 100m;
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 10m;
rewrite ^(/)$ /index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
root /home/sevstyle/domains/******.com/public_html;
}
location ~* ^.+\.(flv|jpg|jpeg|gif|mp3|png|avi|vob|mpg|mpeg|mp4|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|swf)$ {
root /home/sevstyle/domains/*****.com/public_html;
}
location ~* /sites/default/files/imagecache/ {
root /home/sevstyle/domains/******.com/public_html;
error_page 404 = backend;
}
location backend {
proxy_pass http://***.***.***.***:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/www/nginx-dist;
}
location ~ /sites/default/files/imagecache/.*\.(jpg|jpeg|gif|png)$ {
if (!-f $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1;
}
}
}
у вас что много лишнего, зачем вы передаете все с / через proxy_ .!
вы же говорите отказались от апача,
удалите все со своего конфига и поставьте мой конфиг.
Что бы обрабатывался пхп установите lighttpd только с одной опцией spawn-fcgi, чтоб работала "location ~ \.php$ { fastcgi_pass 127.0.0.1:9099; ....... "
Если у вас конфигурация с апачем то это другое дело, так и скажите поможем. Но я привел пример конфига nginx без апача.
если честно я не силен в этом, мне так настроил хостер...
php обрабатывает fastcgi
ну так заработало или нет ?
не открывается даже главная, ошибка:
404 Not Found
nginx/0.7.60
Ну правильно
кто тебе делал конфиг ? хостер ?
во первых у тебя нет строчки "index index.php;" у тебя вообще сервер nginx не знает какие ему файлы поднимать и обрабатывать. про остальное я пока помолчу потому что бредятина написана, но теоретически может работать.
так я вставил полностью ваш конфиг
делал хостер
ну и работает ??
хостер все вообщем поправил, если вам интересно могу выложить здесь решение
Выкладывайте конечно!!
Если и правда читали маны nginx, то должны были видеть что на данный момент рекомендуется использовать директиву try_files (появилась с версии 7.5.1) вместо "прямой трансляции правил" Как переписать апачевские правила для Drupal. Тут рабочий пример
сам удивлен , но это все:
listen ********:80;
server_name ********.com www.********.com ;
access_log /var/log/httpd/domains/********.com.log main;
error_log /var/log/httpd/domains/********.com.error.log error;
location ~* ^.+\.(php)$ {
fastcgi_pass unix:/tmp/php.********.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/********/domains/********.com/public_html$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
domains/********.com/public_html;location / {
proxy_pass http://********: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 100m;
client_body_buffer_size 4k;
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 10m;
rewrite ^(/)$ /index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
root /home/********/
}
location ~* ^.+\.(flv|jpg|jpeg|gif|mp3|png|avi|vob|mpg|mpeg|mp4|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js|swf)$ {
root /home/********/
domains/********/public_html;}
}