Welcome! Log In Create A New Profile

Advanced

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

Pavel V.
July 25, 2012 05:32AM
Здравствуйте, STINGER_LP.

Вы писали 25 июля 2012 г., 3:52:20:

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

Вы в лог апача посмотрите, может этот редирект выдается им??



> 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;

Почитайте про "Nginx IfIsEvil", перепишите условия с использованием $host в отдельные блоки server {} , иначе не
ждите отсюда помощи.

> 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;
> }

Зачем здесь в этом location / {} столько _тюнинга_, я думаю не понятно _никому_.



> # 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;
> }

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

У меня это делается чуть по другому (тоже drupal):

server {
...
root /web/site/www;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
#дефолтный локейшн
location / { proxy_pass http://127.0.0.1:80; }
#Абсолютная статика
location = /favicon.ico { return 404; }
location = /robots.txt {}
location ^~ /img/ {}
location ^~ /misc/ {}
#Эти три в одну регулярку объединять было лениво, но сделать можно и наверное нужно.
location ~* ^\/sites\/all\/themes\/.*\.(gif|jpg|jpeg|png|css|swf|ico|js)$ {}
location ~* ^\/sites\/all\/libraries\/.*\.(gif|jpg|jpeg|png|css|swf|ico|js)$ {}
location ~* ^\/sites\/all\/modules\/.*\.(gif|jpg|jpeg|png|css|swf|ico|js)$ {}
location ~* ^\/modules\/.*\.(gif|jpg|jpeg|png|css|swf|ico|js)$ {}
#Тут что-то создается динамически, поэтому try_files
location ^~ /sites/default/files/ { try_files $uri @backend; }
#локейшн для динамики
location @backend { proxy_pass http://127.0.0.1:80; }
#Всякие защитные фенечки
location ~ /\.ht { deny all; }
...
}

Обратите внимание на то, что /index.php?q=$uri заменен на @backend.
Не забудьте посмотреть в логи апача, он тоже может выдавать редиректы.


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



--
С уважением,
Pavel mailto:pavel2000@ngs.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

STINGER_LP July 24, 2012 02:46PM

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

Pavel V. July 25, 2012 05:32AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 140
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready