Re: странность
Doronin Sergey
nophear at yandex.ru
Sat Feb 14 14:34:55 MSK 2009
> On Sat, Feb 14, 2009 at 01:56:26PM +0300, Doronin Sergey wrote:
>
> > > On Sat, Feb 14, 2009 at 11:48:57AM +0300, Doronin Sergey wrote:
> > > > Ребят, у меня творятся какие-то странные вещи. Тех-поддержка хостинга молчит, поэтому обращаюсь к вам.
> > > > У меня установлен nginx и apache. Стандартная схема. В конфигах тоже ничего мудрёного или экзотического нет, если надо, могу скопи-пастить.
> > > > Описываю проблему.
> > > >
> > > > Предположим на сайте есть каталог "catalog". Мы можем зайти на него через URI: mysite.ru/catalog/
> > > > Он открывается, всё ок. Но если попробовать зайти на URI: mysite.ru/catalog
> > > > Сайт не открывается! FireFox выводит ошибку: Соединение было сброшено. А URI в адресной строке меняется на: mysite.ru:8000/catalog/
> > > > В логах апача я вижу следующее:
> > > > 1.2.3.4 - - [14/Feb/2009:11:40:53 +0300] "GET /catalog HTTP/1.1" 301 336 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6"
> > > >
> > > > 301 ошибка означает - Moved Permanently
> > > Это не ошибка. Это такой код ответа.
> > > > Скажите пожалуйста, с чем это может быть связано? В какой участок конфига мне заглянуть и в какую сторону копать? Заранее, спасибо!
> > > Как выглядит блок с proxy_pass ?
> > >
> > > Возможно, в него нужно добавить
> > >
> > > proxy_redirect http://mysite.ru:8000/ /;
> > Было:
> > proxy_redirect off;
> > Изменил на:
> > proxy_redirect http://mysite.ru:8000/ /;
> >
> > Проблема осталась.. Также код ответа 301 и соединение сброшено..
>
> Как выглядит блок с proxy_pass ?
location / {
proxy_pass http://myip:8000;
# proxy_redirect off;
proxy_redirect http://myip:8000/ /;
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 14m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 8k;
proxy_buffers 8 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
# 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)$ {
access_log off;
root /home/myhost/myhost.ru/docs/$subdomain;
set $subdomain "";
if ($host ~* ^([a-z0-9-\.]+)\.myhost.ru$) {
set $subdomain "subdmn/$1";
}
if ($host ~* ^www.myhost.ru$) {
set $subdomain "";
}
}
}
>
> > > > ЗЫ есть подозрение, что это связано со следующей rewrite конструкцией, которая убирает 8000 порт из URI:
> > > > RewriteEngine On
> > > > RewriteBase /
> > > > RewriteCond %{HTTP_HOST} ^mysite.ru:8000$
> > > > RewriteRule ^(.*)$ http://mysite.ru/$1 [L,R=301]
> > > >
> > > > Конструкцию тупо взял с форума хостинга, поэтому не знаю что к чему..
> > > А я-то думаю, откуда берутся все эти
> > >
> > > server {
> > > if ($http_host ~ ...) {
> > > rewrite ...
> > > }
> > >
> > > Похоже, иначе, как через RewriteRule'ы Апач люди конфигурить не умеют.
> > Это значит rewrite в конфиге nginx лучше прописывать?
>
> Это значит, что и в nginx'е, и в Апаче есть другие средства для работы
> с HTTP_HOST, но люди с mod_rewrite-мозгами про них не знают.
> В nginx'е это server/server_name, в Апаче - <VirtualHost>/ServerName.
>
> Конкретно эти директивы на данную ситуацию влиять не должны, потому что
> они наоброт меняют 8000 на 80.
>
> --
> Игорь Сысоев
> http://sysoev.ru
>
More information about the nginx-ru
mailing list