nginx/Windows

Igor Sysoev igor на sysoev.ru
Пн Фев 1 23:32:13 MSK 2010


On Sun, Jan 31, 2010 at 09:04:08PM +0200, Elifan wrote:

> Здравствуйте, Igor.
> 
> Вы писали 9 января 2010 г., 23:05:49:
> 
> > On Thu, Jan 07, 2010 at 08:35:52PM +0200, Elifan wrote:
> 
> >> Приветствую всех, с праздниками!
> >> 
> >> Сегодня решился поставить на Windows 2003 nginx под эту ОС.
> >> Делать это под cygwin как-то показалось обманчиво для себя и других.
> >> 
> >> Есть  ряд  замечаний/"затыков".  Приведу  сразу  конфиг,  чтобы  было
> >> понятно о чем беседа.
> >> 
> >> ------- nginx.conf -----------
> >> 
> >> ...
> >>     server {
> >>         listen xx.yy.64.117:80;
> >>         server_name default;
> >> 
> >>         location / {
> >>            limit_except  GET POST {
> >>               deny   all;
> >>            }
> >> 
> >>            access_log /work/nginx/logs/default.access.log main;
> >>            root /work/nginx/html;
> >>            rewrite ^/(.*)$ http://maindomain.com   last;
> >>         }
> >> 
> >>         location /nginx_status {
> >>             stub_status on;
> >>             access_log  off;
> >>             allow xx.yy.249.18;
> >>             deny all;
> >>             }
> >> 
> >>    }
> >> 
> >> ...
> >> 
> >> Это  описание  первого вирт хоста. Дальше идут подобные, на том же IP,
> >> только нет rewrite и root другой.
> >> 
> >> 1.   Сначала   обнаружил,   что   ни один сервер не работает. Просто у
> >> клиентов весит подключение, ни ошибки, ничего. В логах даже попыток нет.
> >> Закомментировал   rewrite   в   первом   сервере,   помогло, обращения
> >> попадают в нужные хосты, в логах все видно и хорошо. Расскоментирую
> >> обратно - опять ничего не работает.
> >> Начал разбираться, ну неужели в этом модуле что-то не так и.. наткнулся
> >> на  такой  момент: если перед last; поставить не один пробел, а три (я
> >> в  здравии  и  уме это пишу), то и вирт хосты работают, и редирект
> >> отрабатывает.
> >> Решил  об  этом  написать  здесь,  а  перед этим, провести еще раз все
> >> эксперименты. Попробывал last сменить на break, не три пробела, а два,
> >> сохранить  в  DOS  а  не UNIX и тп. Сначала все указывало что только 3
> >> пробела решают проблему, но...
> >> 2.  Три  пробела перестали действовать. Вернул все с начала, с чистого
> >> листка,  тоже  самое.  Комментирование rewrite правила пофиг.
> >> В  общем  теперь  помогает  наличие default при описании дефолтового хоста:
> >> listen xx.yy.64.117:80 default;
> >> 
> >> 
> >> Я уже жалею что связался с этим бинарём, в cygwin идти? )
> >> 
> >> 
> >> ПС, При тестировании перезапускал nginx:
> >> nginx -s stop
> >> и запускал заново, как просто nginx, так и
> >> start nginx
> 
> > У nginx/Windows есть проблемы, но пробелы на работосопсобность влиять
> > не должны. Нужен отладочный лог.
> 
> 
> 
> В  приложенных  файлах  дебаг  лог  со  запуском и остановом  nginx, без
> какой-либо активности, и лог со включенным правилом rewrite и одним запросом.
> Я  полистал  немного,  не  смог  понять  записывает  ли  он что-то при
> обработке  запроса.  В  access  логах пусто при этом, как я и описывал
> раннее.

Запроса там нет вообще. Рекомендуется следущее:
1) взять последнюю 0.8.x версию, то есть, 0.8.33;
2) задать только один worker;
2) запустить и посмотреть запущенные процессы с помощбю tasklist,
   как описано здесь:
   http://nginx.org/en/docs/windows.html


-- 
Игорь Сысоев
http://sysoev.ru



Подробная информация о списке рассылки nginx-ru