ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Drupal + nginx + Apache: try files вызывает циклический редирект


  • To: nginx-ru@xxxxxxxxx
  • Subject: Drupal + nginx + Apache: try files вызывает циклический редирект
  • From: "STINGER_LP" <nginx-forum@xxxxxxxx>
  • Date: Tue, 24 Jul 2012 16:52:20 -0400 (EDT)
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tigger.jlkhosting.com; s=x; h=From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To:Date; bh=VNw3XEINT+R4oNBqvNqv3SJwqf30JqSZa5J+9qQoxmU=; b=FvF8AVSTOahWGUF+t0hLaKMPfeKRa9fjqUVsmiEfbR2Tc1+bKpST9l8B/Pk8gMh2r9App0/JUlhnfLqmpH1ryewztLXgQkAYZiMg9bnVBjrAoo+xTcH7AeR1z+ne2qj5;

Здравствуйте. Столкнулся с проблемой
конфигурации nginx у себя на сервере под
Drupal 6. После установки nginx в связке с Apache,
перестал работать модуль Imagecache по
генерации различных версий картинок,
загружаемых на сайте. Много всего
вычитал в сети на эту тему и выяснил,
что в локейшенах стоит прописать
директиву try_files, чтобы в случае, если
файл не обнаружен, запрос передавался
на обработку Апачу, и тогда модуль
Imagecache должен сделать свое дело по
генерации файла.

Я делал все в частности как указано в
вики: http://wiki.nginx.org/HttpCoreModule#try_files за
исключением того, что у меня fastcgi не
стоит. Но в итоге, в каком бы я локейшене
не прописывал "try_files $uri $uri/ /index.php?q=$uri;" по
его адресу происходит циклическое
перенаправление, о чем любезно сообщил
мне Хром (Опера же тупо белую страницу
выдает).

Прошу помощи в настройке nginx, т.к. уже
больше месяца не могу решить эту
проблему, которая стопорит всю работу
над сайтом.

========================================
Вот так выглядит nginx.conf:
========================================
user www-data;
worker_processes  2;
error_log  /var/log/nginx/error.log info;
pid        /var/run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    client_header_timeout  3m;
    client_body_timeout    3m;
    send_timeout           3m;
    client_header_buffer_size    1k;
    large_client_header_buffers  4 4k;
    gzip on;
    gzip_min_length  1100;
    gzip_buffers     4 8k;
    gzip_types       text/plain;
    postpone_output  1460;
    sendfile         on;
    tcp_nopush       on;
    tcp_nodelay      on;
    keepalive_timeout  75 20;
    access_log  /var/log/nginx/access.log;
    gzip_comp_level 5;
    gzip_types text/xml application/xml application/x-javascript
text/javascript text/css text/json;
    gzip_disable     "msie6";
    output_buffers   1 32k;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
========================================

========================================
Вот так выглядит отдельный конфиг из
sites-available - mysite.com:
========================================
server {

   listen mysite.com:80;
   server_name mysite.com www.mysite.com dev.mysite.com
download.mysite.com www.mysite.com download.myoldsite.com
www.myoldsite.com www.download.myoldsite.com;
   root /var/www/mysite/;
   index index.php index.html index.htm;
   charset utf-8;
   access_log  /var/log/nginx/access_mysite.log;
   error_log   /var/log/nginx/error_mysite.log warn;

   if ( $host = myoldsite.com ) {
         rewrite ^(.*) http://mysite.com$1 permanent;
   }
   if ( $host = www.myoldsite.com ) {
         rewrite ^(.*) http://mysite.com$1 permanent;
   }
   if ( $host = www.download.mysite.com ) {
         rewrite ^(.*) http://download.mysite.com$1 permanent;
   }
   if ( $host = www.myoldsite.com ) {
         rewrite ^(.*) http://download.myoldsite.com$1 permanent;
   }
        

   if ($host !~
^(mysite.com|www.mysite.com|download.myoldsite.com|www.download.myoldsite.com|dev.mysite.com|www.dev.mysite.com)$)
{
         rewrite ^(.*) http://mysite.com$1 permanent;   
   }
        
   location / {
            proxy_pass                 http://127.0.0.1:81/;
            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;
            client_body_temp_path      /var/nginx/client_body_temp 1 2;
            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;
            proxy_temp_path            /var/nginx/proxy_temp 1 2;

            try_files $uri $uri/ /index.php?q=$uri;
       }

       # Serve static files directly by nginx
       location ^~ /files/ {
            access_log        off;
            expires           20d;
            try_files $uri $uri/ /index.php?q=$uri;
       }
       location ~*
^.+\.(jpeg|jpg|gif|png|bmp|ico|swf|exe|air|ttf|otf|xml|torrent|bup|ifo|info|nfo|cur|tar|zip|tgz|rar|bz2|pdf|psd|txt|doc|xls|docx|xlsx|bak|veg|sfk|css|js|ogg|mp3|ac3|flac|mp2|wav|wma|wmv|avi|mpeg|mpg|mov|flv|mp4|webm|mkv|ts|vob|m4v|rm|m2ts|mts)$
{
            access_log   off;
            expires      30d;
            try_files $uri $uri/ /index.php?q=$uri;     
       }
        
       # Deny access to .htaccess files, if Apache's document root
concurs with nginx's one
       location ~ /\.ht {
            deny  all;
            access_log off;
            log_not_found off;
       }
        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }
        
       # Deny access to unix backup files
       location ~* \~$ {
            deny all;
       }

       # Set error page handle by Drupal
       error_page   500 502 503 504  /error50x.html;
       location = /error50x.html {
            root   /var/www/mysite/;
       }
       error_page 404 /error404.html;
       location = /error404.html {
            root   /var/www/mysite/;            
       }

       # Deny access to system files and directories
       location ~*
\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_
{
                deny all;
       }
       location ~
"^/(CHANGELOG|COPYRIGHT|INSTALL\.mysql|INSTALL\.pgsql|INSTALL|LICENSE|MAINTAINERS|UPGRADE)\.txt"
{
            deny all;
       }

       location ^~ /files/imagecache/ {          
            root   /var/www/mysite;
            index  index.php index.html;
            try_files $uri $uri/ /index.php?q=$uri;
       }
}
========================================

Может кто-то сможет подсказать в чем
ошибка? При данной конфигурации с
указанием try_files $uri $uri/ /index.php?q=$uri; по
соответствующим локейшенам происходит
циклический редирект, в том числе на
всех внутренних страницах сайта.

Заранее благодарен за помощь.

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

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.