Показаны сообщения с ярлыком Apache virtual hosts. Показать все сообщения
Показаны сообщения с ярлыком Apache virtual hosts. Показать все сообщения

24 нояб. 2011 г.

Ошибка апача: [warn] _default_ VirtualHost overlap on port 443, the first has precedence

Такая ошибка вылазит при перезагрузке или переконфигурировании апача.

Причина такой ошибки очень простая - в конфиге апача (httpd.conf, apache2.conf - смотря какой линукс у вас) не хватает строчки:

NameVirtualHost *:443

Добавьте - и будет вам счастье :)

Настройка mod_proxy в Apache

В общем, был такой таск: есть у нас локальная сетка и маршрутизатор Peplink. В локальной сетке на многих тазиках крутятся сайты, которые должны быть доступны извне. Как это сделать? Разносить по портам - не вариант, т. к. пользователю неудобно всё-таки набирать  URL типа блаблабла:8081. Решение - использовать HTTP-прокси, а на тазик с ним открыть в маршрутизаторе порты 80, 443. Для проксирования обычно используют nginx, но апач тоже отлично справляется с этой задачей.

Так сложилось, что тазик с прокси был Убунтой (клиент категорически н ехотел работать с другими дистрибутивами Linux), а "в Убунте всё не как у людей" (с) :) потому конфигурация её несколько отличается от других дистрибутивов. Но, приняв философию Убунты, я понял, что многие решения в ней очень даже удобны, хотя некоторые мне не нравятся - например, отсутствие пользователя root. Но это уже философия, грозящая холиваром, потому перейдем к делу :)

В убунте манипулирование апачем происходит с помощью глобальных команд: включение/выключение виртуал хостов - a2ensite / a2dissite с одним аргументом - пути к конфигу, в котором прописан виртуал хост. Включение/выключение модов или расширений происводится командами a2enmod / a2dismod.

В общем, алгоритм работы такой:

1) Нужно включить необходимые модули апача. Устанавливаем:

sudo apt-get install libapache2-mod-proxy-html libapache2-mod-gnutls

Разрешаем:

sudo a2enmod proxy
sudo a2enmod ssl
sudo a2enmod cache
sudo /etc/init.d/apache2 restart

2) Делаем конфиг виртуал хоста (по 1му файлу на 1 хост!) и помещаем его в /etc/apache2/sites-available. Пример HTTPS конфига проксирования на тазик с Confluence - это такая джавовская веб-морда для программистов и не только, работающая на Apache Tomcat (с портом 8444):

6 окт. 2011 г.

Настройка mass virtual hosting для Apache (Linux)


В общем, идея масс виртуал хостинга состоит в том, что у нас есть папочка на сервере, мы в ней создаем подпапку с именем в виде названия нашего сайта - и всё, виртуальный хост готов, не надо править никакие конфиги и т. д. В моем случае папка для виртуал хостов была /srv/http/vhosts, затем название сайта, например site1.example.int, а вся начинка в подпапке сайта public. Т. е. заглавная страница сайта: /srv/http/vhosts/site1.example.int/public/index.php

Для реализации этого добавляем в конец конфига апача (httpd.conf) следующее:

RewriteEngine On
## Create a handle to convert upper or mixed-case to lower-case
RewriteMap lowercase int:tolower


##-----------------------------------
## where hostname has www prefix
##-----------------------------------
## Firstly create custom variable that contains the host without the www prefix
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule .? - [E=noWWWHost:%1]