непонятки с конфигурацией nginx...
azlk
azlk at puppyrus.org
Tue Jun 9 01:02:36 MSD 2009
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