Comments 42
Зачем апач биндить на внешний интерфейс?
127.0.0.1: порт-по-вкусу. с него достаточно.
Апач лучше вешать на именованный локэйшн,
в который потом проще будет завернуть и ошибки статики
к примеру так.
error_page 404 405 504 502 = @fallback;
127.0.0.1: порт-по-вкусу. с него достаточно.
Апач лучше вешать на именованный локэйшн,
в который потом проще будет завернуть и ошибки статики
к примеру так.
error_page 404 405 504 502 = @fallback;
Добавлю, что
proxy_pass http://ВАШ_ДОМЕН:8080/;
тоже не айс, лучше тоже на localhost. А по возможности — на unix.socketЗаворачивание ошибок 404 на апач — это правильно для большинства типовых сайтов.
Например, для нас, когда мы конфигурируем сервер, очень важно, чтобы nginx в конфиге должен иметь fallback на статические изображения(jpg, png, gif) и файлы — чтобы запрос шёл к апачу при отсутствии
запрашиваемого отображения.
Почему это важно:
1 вариант: Бывает ситуации, когда разработчик отдает некоторые файлы с помощью apache. Для многих [сделанных давно] проектов это особенно актуально
2 вариант (часто используемый нами): мы генерируем картинки нужного размера из исходных картинок (например, превьюшки) при первом обращении по этому адресу и потом кэшируем на диск. Вот при первом обращении срабатывает апач, а при последующих — уже nginx отдает файл с диска.
Это однозначно полезная опция.
Например, для нас, когда мы конфигурируем сервер, очень важно, чтобы nginx в конфиге должен иметь fallback на статические изображения(jpg, png, gif) и файлы — чтобы запрос шёл к апачу при отсутствии
запрашиваемого отображения.
Почему это важно:
1 вариант: Бывает ситуации, когда разработчик отдает некоторые файлы с помощью apache. Для многих [сделанных давно] проектов это особенно актуально
2 вариант (часто используемый нами): мы генерируем картинки нужного размера из исходных картинок (например, превьюшки) при первом обращении по этому адресу и потом кэшируем на диск. Вот при первом обращении срабатывает апач, а при последующих — уже nginx отдает файл с диска.
Это однозначно полезная опция.
На просторах интернета таких статей много, и фактически не нужно прикладывать никаких сил что бы их найти.
И вообще в большинстве случаев хватает nginx'а c php-fpm, без всяких там apach'ей.
Вроде это не раз уже было разжевано на Хабре.
Набираем в гугле «nginx reverse proxy» и видим пару десятков статей схожего содержания, причем некоторые имеют более полное описание.
Стандартный вопрос, что если я захочу держать на сервере, на-пример .pdf файлы? а .djvu? а .doc? а .*?
Для чего нужны, на пример, эти настройки:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
Хоть бы постарались и подробно описали конфиг, написали бы возможные варианты и как что и когда лучше настраивать.
Стандартный вопрос, что если я захочу держать на сервере, на-пример .pdf файлы? а .djvu? а .doc? а .*?
Для чего нужны, на пример, эти настройки:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
Хоть бы постарались и подробно описали конфиг, написали бы возможные варианты и как что и когда лучше настраивать.
Если у вас непредсказуемые типы статичных файлов будут, то можно для них отдельный поддомен выделить. Еще можно проверять существует ли файл (в папке для статики), иначе перекидывать запрос апачу.
Вместо
В Ubuntu принято писать
/etc/init.d/apache2 restart
/etc/init.d/nginx restart
В Ubuntu принято писать
service apache2 restart
service nginx restart
Еще во всех командах нужен sudo, либо один раз sudo -s, если мне память не изменяет.
Не только в Убунте кстати (Fedora 14).
А в чем разница? Я, например, не задумывался никогда.
Через полный путь к init-скрипту работает фактически в любой unix-подобной ОС, не нужно помнить, где и как «принято».
Через полный путь к init-скрипту работает фактически в любой unix-подобной ОС, не нужно помнить, где и как «принято».
Тоже никогда не задумывался об этом…
1) Надо рестартануть апач
2) /etc/init.d/apache2 restart
3) Профит
1) Надо рестартануть апач
2) /etc/init.d/apache2 restart
3) Профит
а дело в нюансах. например не передаются переменные окружения в скрипт
service runs a System V init script in as predictable environment as possible, removing most environment variables and with current working directory set to /.
Кстати, для Apache тогда бы не помешало поставить mod_rpaf и настроить его.
это просто необходимо сделать, причем, нужно брать версию 0.6, лучше даже с офсайта и вручную скомпилировать, приведу последовательность действий для дебиана, беру кусок из нашей внутренней документации:
… Затем нам необходимо решить проблему с REMOTE_ADDR. Решается она установкой модуля rpaf:
apt-get install libapache2-mod-rpaf
В файле /etc/apache2/mods-enabled/rpaf.conf добавляем следующий параметр:
RPAFheader X-Real-IP
Скорее всего, пакет libapache2-mod-rpaf устаревший, а последний параметр поддерживается только в версии rpaf начиная с 0.6, его можно взять отсюда: stderr.net/apache/rpaf/download/ Кроме того, нам надо скачать дополнительный пакет для апача и потом можно будет собрать модуль:
apt-get install apache2-prefork-dev
wget stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs2 -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
Теперь мы создали еще один модуль в составе апача, надо ему указать, что мы работаем именно с ним. Для этого редактируем файл /etc/apache2/mods-enabled/rpaf.load
LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf-2.0.so
А в файле /etc/apache2/mods-enabled/rpaf.conf изменяем:
… Затем нам необходимо решить проблему с REMOTE_ADDR. Решается она установкой модуля rpaf:
apt-get install libapache2-mod-rpaf
В файле /etc/apache2/mods-enabled/rpaf.conf добавляем следующий параметр:
RPAFheader X-Real-IP
Скорее всего, пакет libapache2-mod-rpaf устаревший, а последний параметр поддерживается только в версии rpaf начиная с 0.6, его можно взять отсюда: stderr.net/apache/rpaf/download/ Кроме того, нам надо скачать дополнительный пакет для апача и потом можно будет собрать модуль:
apt-get install apache2-prefork-dev
wget stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
tar xzf mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
apxs2 -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
Теперь мы создали еще один модуль в составе апача, надо ему указать, что мы работаем именно с ним. Для этого редактируем файл /etc/apache2/mods-enabled/rpaf.load
LoadModule rpaf_module /usr/lib/apache2/modules/mod_rpaf-2.0.so
А в файле /etc/apache2/mods-enabled/rpaf.conf изменяем:
Всегда было интересно, для чего в этой схеме Apache?
есть fastcgi для php, и php-fpm и еще куча разного.
есть fastcgi для php, и php-fpm и еще куча разного.
например для mod_rewrite и .htaccess, ибо некоторые CMS умеют писать htaccess, но при этом не имеют ни малейшего понятия как написать то же самое для nginx
теперь и сам задумался, для чего это всё, если есть алгоритмы автоматического преобразования директив mod_rewrite в формат понятный nginx.
Нету.
не могу с вами согласиться, т.к. данная утилита пару раз меня выручала
Самое забавное — на момент написания комментария топик имеет +2 голоса, но при этом 76 человек добавили в избранное. Значит все-таки актуально…
На хабре много разного народа, может кого и в гугле забанили, кто знает…
Судя по всему, те, кто добавил в избранное, правом голоса не обладают, серые, околонулевые читатели.
Судя по всему, те, кто добавил в избранное, правом голоса не обладают, серые, околонулевые читатели.
Вы сейчас обо мне говорите. Я добавил. Не уверен, что пригодится, пока индейца хватает. Но зато если надо будет — я смогу быстро найти. Да, в гугле может быть и быстрее, да, в гугле может быть полнее, но для моих скромных потребностей мне этой статьи хватит с головой, остальное, если понадобится, найду…
Нет, никого конкретного я не имел в виду. Не думаю, что стоит по этому мануалу делать. Сходите лучше за офф. документацией, она на русском и с понятными примерами.
Также рекомендую присоединиться к рассылке (на сайте Сысоева написано, как), там сам Игорь и другие опытные товарищи помогают в любых ситуациях, даже очень нетривиальных.
Также рекомендую присоединиться к рассылке (на сайте Сысоева написано, как), там сам Игорь и другие опытные товарищи помогают в любых ситуациях, даже очень нетривиальных.
stackoverflow.com/questions/31859699/how-to-correct-rewrite-nginx-apache-urls посмотрите плиз ссылку, сможете помочь настроить реврайт nginx frontend + apache backend, спасибо
Sign up to leave a comment.
Делаем nginx как front-end к apache