Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: непонятки с конфигур ацией nginx...
Sergey Shepelev wrote:
2009/6/7 azlk <azlk@xxxxxxxxxxxx>:
Сервер 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
|