странность

Igor Sysoev is at rambler-co.ru
Sat Feb 14 14:07:18 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 ?

> > > ЗЫ есть подозрение, что это связано со следующей 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