Конфигурация nginx и drupal6

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

Аватар пользователя Eugene.Korneev@drupal.org Eugene.Korneev@... 16 июля 2009 в 10:04

Цель: nginx (v 7..8) + drupal 6, +fastcgi, апача нет!

есть "миллион" описаний конфигурации, примеров и т.п.

все сводятся к:

...
location / {
    root /var/www;
    index index.php;
    if (!-e $request_filename ) {
        rewrite ^(.*)$ /index.php?q=$1 last;
    }
}
...

но на странице Игоря Сысоева есть рекомендации с "вырезками" другого варианта..

есть предложение раскрыть тему nginx + drupal 6 конфигурация, поиск, чистые ссылки и т.п.
вопрос существует рабочий файл конфигурации с последними рекомендациями?

Комментарии

Аватар пользователя dfaker dfaker 16 июля 2009 в 10:13

Если под последними рекомендациями имеется ввиду использование директивы try_files, то например вот:

server {
    listen 8080;
    server_name 192.168.1.1;
    root /var/www-nginx/drupal;

    location / {
        try_files $uri $uri/ [user=drupal]drupal[/user];
        index index.php index.html index.htm;
    }
     
    location ~ \.php$ {
        try_files $uri [user=drupal]drupal[/user];
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include  fastcgi_params;
    }

    location [user=drupal]drupal[/user] {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME      $document_root/index.php;
        fastcgi_param  QUERY_STRING         q=$uri&$args;
        fastcgi_param  REQUEST_METHOD       $request_method;
        fastcgi_param  CONTENT_TYPE         $content_type;
        fastcgi_param  CONTENT_LENGTH       $content_length;
        fastcgi_param  REDIRECT_STATUS      200;
        fastcgi_param  SCRIPT_NAME          /index.php;
        fastcgi_param  REQUEST_URI          $request_uri;
        fastcgi_param  DOCUMENT_URI         $document_uri;
        fastcgi_param  DOCUMENT_ROOT        $document_root;
        fastcgi_param  SERVER_PROTOCOL      $server_protocol;
        fastcgi_param  GATEWAY_INTERFACE    CGI/1.1;
        fastcgi_param  SERVER_SOFTWARE      nginx/$nginx_version;
        fastcgi_param  REMOTE_ADDR          $remote_addr;
        fastcgi_param  REMOTE_PORT          $remote_port;
        fastcgi_param  SERVER_ADDR          $server_addr;
        fastcgi_param  SERVER_PORT          $server_port;
        fastcgi_param  SERVER_NAME          $server_name;
    }
}

Аватар пользователя Eugene.Korneev@drupal.org Eugene.Korneev@... 16 июля 2009 в 10:47

спасибо пример рабочий, я не заметил fastcgi_param SCRIPT_NAME /index.php;

+ как вариант замены:

ErrorDocument 404 /index.php

<FilesMatch "\.(engine|inc|info|install|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
  Order allow,deny
</FilesMatch>

добавить:

error_page 404 index.php;

location ~* \.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template)$ {
    deny all;
}

Аватар пользователя root root 10 ноября 2015 в 11:46

На drupal.ru сейчас следующий конфиг (без использования try_files введённой в последних версиях nginx) - см. аттачи. Вообще стоит его уже обновить.

Аватар пользователя weldpua2008 weldpua2008 25 октября 2010 в 10:26

На Вордпресе легко админка прячется, так как она там отдельно, как же на Друпале спрятать?:

location /wp-admin {
 allow 10.0.0.0/8;
 allow 192.168.0.0/16;
 deny all;
index  index.php index.html index.htm index.php;
        root /var/www/blog;
}
Аватар пользователя Softovick Softovick 25 октября 2010 в 10:39

weldpua2008 wrote:
На Вордпресе легко админка прячется, так как она там отдельно, как же на Друпале спрятать?:

location /wp-admin {
 allow 10.0.0.0/8;
 allow 192.168.0.0/16;
 deny all;
index  index.php index.html index.htm index.php;
        root /var/www/blog;
}


так вроде как и у Drupal это отдельно - /admin... Не?

Аватар пользователя andribas@drupal.org andribas@drupal.org 10 ноября 2015 в 11:47

Наиболее актуальный конфиг, который я использую - http://groups.drupal.org/node/26363
его написала одна из организаторов http://groups.drupal.org/nginx
группы nginx на друпал.орг
Кстати, если по конфигу есть какие-то замечания / доработки / исправления или что-то не работает, omega8.cc на пару с brianmercer проконсультируют / подскажут что не так, причем бесплатно.

Я немного доделал, на этом конфиге работает boost + static_gzip и imagecache
Все сделано через try_files как советует Игорь Сысоев.

Аватар пользователя light9 light9 2 ноября 2010 в 12:19

"<a href="mailto:andribas@drupal.org">andribas@drupal.org</a>" wrote:

Спасибо! Отлично работает!
Только не могу разобраться, как заставить работать с nginx backup_migrate. Все время ругается «....please secure the 'sites/default/files/backup_migrate/manual' directory...»..

# hide backup_migrate files
location ~* ^/files/backup_migrate {
deny all;
}

- не помогает.

Аватар пользователя andribas@drupal.org andribas@drupal.org 2 ноября 2010 в 12:26

"light9" wrote:
Только не могу разобраться, как заставить работать по nginx backup_migrate. Все время ругается «....please secure the 'sites/default/files/backup_migrate/manual' directory...»..

# hide backup_migrate files
location ~* ^/files/backup_migrate {
deny all;
}

- не помогает.

Сравните две строчки: «sites/default/files/backup_migrate» и «^/files/backup_migrate»

По-моему, крышка здесь не нужна.

Аватар пользователя light9 light9 11 ноября 2010 в 9:44

"<a href="mailto:andribas@drupal.org">andribas@drupal.org</a>" wrote:
Сравните две строчки: «sites/default/files/backup_migrate» и «^/files/backup_migrate»

Да, спасибо. Вот так заработало:

location ~* /files/backup_migrate {
deny all;
}