Re: непонятки с конфигурацией nginx...
Алексей Васильевич Залесов
aleksey.zalesov at phystech.edu
Tue Jun 9 10:25:34 MSD 2009
Официальная документация действительно трудна для новичка. Но есть же
еще много источников информации. Например, здесь собрано много хороших
tutorials по установке и конфигурированию nginx -
http://blog.taragana.com/index.php/archive/top-10-nginx-tutorial/.
Можно начать с них, а потом читать документацию по мере надобности.
9 июня 2009 г. 1:02 пользователь azlk (azlk at puppyrus.org) написал:
> Sergey Shepelev wrote:
>>
>> 2009/6/7 azlk <azlk at puppyrus.org>:
>>>
>>> Сервер Ubuntu 8.04.2, я собрал nginx 0.7.59 с такими опциями:
>>>
>>> configure arguments: --prefix=/usr --conf-path=/etc/nginx/nginx.conf
>>> --error-log-path=/var/log/nginx/error.log --with-http_ssl_module
>>> --with-http_addition_module --with-http_sub_module
>>> --with-http_gzip_static_module --with-http_perl_module --with-pcre
>>> --with-md5-asm --with-sha1-asm
>>> --with-sha1=/usr/lib/perl5/auto/Digest/SHA1/SHA1.so --with-poll_module
>>> --http-log-path=/var/log/nginx/nginx.access.log
>>> --pid-path=/var/run/nginx.pid --with-cpu-opt=opteron
>>>
>>> Все html (или php) файлы хочу положить в /var/www, для этого в настройках
>>> сайтов прописал вот это:
>>>
>>> server {
>>> listen 80;
>>> server_name траляля.info;
>>> access_log /var/log/nginx/default.access.log;
>>> location /var/www/nginx-default {
>>> root /var/www/nginx-default;
>>> index index.php index.html;
>>> }
>>>
>>> другой сайт (вернее, другая страница на том же сайте):
>>> server {
>>> listen 80;
>>> server_name www.траляля.info;
>>> access_log /var/log/nginx/dao.access.log;
>>> location /var/www/dao {
>>> root /var/www/dao/;
>>> index index.php index.html;
>>> }
>>>
>>> и наконец, пытался rtorrent пустить через https:
>>>
>>> server {
>>> listen 443;
>>> keepalive_timeout 75;
>>> access_log /var/log/nginx/rtorrent.access.log;
>>> location = /var/www/rt {
>>> root /var/www/rt;
>>> index index.html;
>>> }
>>> (тут лежат файлы веб-морды для rtorrent)
>>>
>>> Как только не пытался обращаться к этим страницам: траляля.info,
>>> www.траляля.info, траляля.info/rt, траляля.info/dao - в ответ я получаю то
>>> одно, то другое - то 403 Forbidden, то (https) "Ваш web сервер не
>>> поддерживает PHP."
>>> СтоИт PHP 5.2.4-2ubuntu5.5 with Suhosin-Patch 0.9.6.2 (cgi-fcgi)?
>>> fast-cgi из пакета lighttpd.
>>> Случайно (!) в логе нашел, что, оказывается, не находится страница,
>>> которую веб-сервер ищет по адресу /usr/html. У меня такого каталога
>>> даже нет! Создал каталог, положил туда страницы - начало показывать хоть
>>> что-то...
>>> У меня несколько вопросов:
>>> 1.Возможно, для всех вас это всё очевидно, а для меня, который первый
>>> раз в жизни столкнулся с настройкой веб-сервера nginx, это совсем не
>>> так.
>>> Например: где можно хоть что-то узнать о таких параметрах
>>> конфигурации nginx, как
>>> --with-http_addition_module
>>> --with-http_sub_module
>>> --with-poll_module
>>> Что это за модули вообще?? Про них нигде ничего не написано - как же
>>> можно новичку понять, нужны они или нет, если я про них даже прочитать
>>> не могу нигде???..
>>
>> http://sysoev.ru/nginx/docs/http/ngx_http_addition_module.html
>> http://sysoev.ru/nginx/docs/http/ngx_http_sub_module.html
>>
>> http://sysoev.ru/nginx/docs/events.html
>> select, poll, epoll, kqueue это низкоуровневые методы получения
>> асинхронных событий от ОС.
>> Вам не нужно об этом беспокоиться, configure автоматически найдёт
>> доступные.
>>
>> http://sysoev.ru/nginx/docs/install.html
>> Здесь вообще все опции configure описаны. Что же вы нагло врёте, мол,
>> нигде ничего не написано? "Не написано" и "я не нашёл" - разные вещи.
>> Если б вы написали в рассылку простую просьбу разъяснить опции
>> configure, сохранили бы честь и лицо. А сейчас перечитайте своё
>> сообщение. Стыд.
>>
>> Как понять новичку - отличное правило - если ты не знаешь что это,
>> значит это тебе не нужно. Или, по крайней мере, уж точно тебе не нужно
>> это трогать.
>>
>>> 2. Откуда и зачем мне по умолчанию впихнули путь /usr/html? Я нигде
>>> этого не просил, мне ТАК не удобно, а на параметры в конфигурации сайта
>>> он чихает, как будто их нет (root /var/www/nginx-default). Нет, я,
>>> конечно, погуглил, посмотрел Makefile и уже понял, что можно взять и
>>> тупо статически прописать это там. Но разве это нормально и/или удобно?
>>> В следующий раз, мне надо снова будет всё то же самое руками
>>> прописывать?... Почему при ./configure .....[options] я не могу задать
>>> путь корня www? Сколько я собирал программ, PREFIX относится к
>>> бинарнику, библиотекам и пр., а настройки работы самой программы должны
>>> находиться в конфигурационном файле и она (программа) на них как-то
>>> должна реагировать, разве не так? У меня nginx не реагирует :-(
>>
>> root можно задать в конфиге. Почему вас волнует сборка в этом вопросе?
>> В любой программе (в том числе в понятных вам апаче и лайти) есть
>> десятки-сотни настроек, которые имеют какое-то значение по-умолчанию.
>> Вот root имеет значение по-умолчанию /usr/html или какой-то еще. Это
>> не важно. Вместо того, чтобы тратить своё время на жалобы о дефолтных
>> настройках, просто напишите в конфиге root какой вам надо.
>>
>>> 3. Даже когда nginx начал что-то показывать - я не могу понять его
>>> логику: он то показывает файлы из /usr/html, то вдруг начинает казать
>>> из /var/www/.. Наверное, должно пройти несколько лет, чтобы обычный
>>> человек, не искушённый в настройках nginx, смог все-таки заставить её
>>> работать так, как ему надо?....
>>
>> Вы первый за несколько лет, у кого такие большие проблемы с настройкой
>> nginx. Задумайтесь над этим.
>>
>>> Создаётся такое ощущение, что вокруг nginx существует какой-то заговор:
>>> все всё знают и поэтому об этом не говорят :-0 Может быть я чего-то не
>>> знаю? Сайт Игоря Сысоева внимательно читал, а также кучу конференций по
>>> этому поводу. У меня, простите, создалось впечатление, что у nginx
>>> какая-то невнятная логика работы (я сейчас говорю только про
>>> конфигурацию и размещение фалов). Почему у такой замечательной
>>> программы, которая уже тащит около 4% сайтов, как пишут, нет НОРМАЛЬНОЙ
>>> документации? Это, что, такая непосильная работа??? Документации, взяв
>>> в руки которую, любой новичок сможет собрать демон, настроить и
>>> запустить его, при этом ПОНИМАЯ, что происходит!.... Там чуть ли не по
>>> каждому пункту вопросы, на которые нет ответов...
>>
>> В документации вопросы?
>> Задавайте свои конкретные вопросы здесь в рассылке. Люди охотно
>> отвечают и помогают решать проблемы.
>>
>>> Про https/SSL я даже
>>> боюсь спрашивать - все тут обсуждают такие дебри, в которые я даже еще
>>> не лез, а мне хотелось попробовать запустить для начала хотя бы
>>> rtorrent, чтобы не весь мир управлял им, а только несколько человек.
>>> Так я не могу найти НИГДЕ толкового описания - КАК сделать так, чтобы
>>> nginx пускал меня по https, спрашивая логин-пароль.... Apache, lighhtpd
>>> - пожалуйста, а nginx - тишина...
>>
>> Возможно, в документации nginx не хватает нескольких примеров
>> достижения простых целей. Возможно, это потому что всё понятно.
>>
>> Хотя, вот, есть примеры. Согласен, что примеров мало.
>> http://sysoev.ru/nginx/docs/virtual_hosts.html
>> http://sysoev.ru/nginx/docs/example.html
>>
>>> Простите, уважаемые гуру веб-серверов, интернет-контента и прочая и
>>> прочая, если я задел вас за живое, но вынужден констатировать, что
>>> существующая документация на nginx абсолютно невнятна, в ней местами
>>> отсутствуют даже намёки на многие неизвестные новичкам вещи, и потому
>>> непригодна для тех, кто первый раз берётся за настройку веб-серверов, в
>>> частности nginx. Чтобы не заниматься просто критикой, я предлагаю свою
>>> помощь в создании внятной и взаимоувязанной документации ХОТЯ БЫ на
>>> основные моменты, чтобы каждый желающий мог начать работать с программой
>>> (конфигурирование, установка, каталоги для размещения фалов, связка с
>>> cgi). Я очень плохо (пока) разбираюсь в основах работы веб-серверов,
>>> раздачи контента через интернет, не знаю regexp-ы, и т.д. - но
>>> некоторые познания в линуксе у меня все-таки уже есть, и самое главное,
>>> я могу писать понятные и разжеванные документы, так, чтобы каждый пень,
>>> типа меня, смог их понять и применить. Я думаю, что отсутствие толковой
>>> (а порой - хоть какой-либо) документации и сдерживает популярность
>>> nginx. Ведь именно об этом пишут на всех форумах, особенно,
>>> англоязычных.
>>>
>>>
>>
>> Документация nginx не ставит целью обучение начинающих сисадминов.
>> Вообще, у меня сложилось впечатление, что у Игоря нет цели сделать
>> nginx единственным вебсервером планеты. Кому-то непонятно, это
>> сдерживает популярность. И что?
>>
>> Документация nginx выполнена в стиле reference, то есть описывает
>> каждый конфигурационный параметр в отдельности. И с этой задачей
>> документация справляется полностью. Да, это пол дела - знать
>> директивы, нужно уметь ими пользоваться. Как-то так сложилось, что
>> людям удобно спросить в рассылке что-то вроде, как мне раздавать файлы
>> из /var/www/dao на хосте www.траляля.info? Вам ответят:
>>
>> server {
>> listen 80;
>> server_name www.траляля.info;
>> root /var/www/dao;
>> index index.html;
>> }
>>
>> А ваша конфигурация
>>
>>> server {
>>> listen 80;
>>> server_name траляля.info;
>>> access_log /var/log/nginx/default.access.log;
>>> location /var/www/nginx-default {
>>> root /var/www/nginx-default;
>>> index index.php index.html;
>>> }
>>
>> раздаёт файлы из /var/www/nginx-default на URL
>> http://траляля.info/var/www/nginx-default. Другими словами, не надо в
>> location повторять root. Вы перепутали root и alias.
>
> Я прошу прощения за свою несдержанность и у Игоря и у всех участников...
> Это уже просто от отчаяния вырвался крик души, как говорится :-(
> Уже наверное недели три пытаюсь понять, как же это всё работает, в голове
> полная каша, ничего не мог найти и ничего не получалось вообще.
> Описание тех модулей действительно есть, спасибо вам, что ткнули в нужное
> место...и вообще что ткнули носом, иногда бывает полезно очнуться :-)
> Так что не обижайтесь - ещё раз говорю, была просто полная ж*** вместо
> головы...
> Ваш совет убрать root из location помог, действительно теперь всё на месте.
> Я это взял из примеров и поэтому не подумал, что это может так повлиять. Вы
> абсолютно правы, насчет:
>>Да, это пол дела - знать
>>директивы, нужно уметь ими пользоваться....
> Именно поэтому и я говорил о хорошей документации, например такой, как на
> FreeBSD.org
>
>
>
--
Алексей
More information about the nginx-ru
mailing list