Назад | Перейти на главную страницу

Настройка Apache VirtualHost для нескольких сайтов

Я пытаюсь создать веб-сайт на своем компьютере, но у меня возникли проблемы. Я создал прототип веб-сайта, используя Flask и сервер отладки, и теперь хотел бы разместить его на некоторое время, пока я буду его отлаживать. Это только для внутреннего использования в сети моей компании.

Кажется, я не могу правильно настроить Apache. В настоящее время у меня есть сайт по умолчанию, который ссылается на мой домашний каталог, поэтому я могу получать файлы с других машин через веб-браузер.

Я не изменил свой apache2.conf вообще, но вот мой httpd.conf

<Location /server-status>
    SetHandler server-status

    Order Deny, Allow
    Deny from all
    Allow from .mycompany.com
</Location>

Моя конфигурация по умолчанию, расположенная внутри /etc/apache2/sites-available/default, имеет

<VirtualHost *:80>
    ServerAdmin polkid@mycompany.com

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinksMultiViews
        AllowOverride None
        Order allow,deny
        allow from .mycompany.com
    </Directory>
    <Directory /var/www/home/>
        Options Indexes FollowSymLinks MultiViews
        AllowOVerride None
        Order allow,deny
        allow from .mycompany.com
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Хотя приложение, которое я пытаюсь включить, имеет следующий файл конфигурации, расположенный по адресу /etc/apache2/sites-available/Powermon

LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

User p_user
Group p_group
FastCgiServer /home/p_user/Powermon/runp.fcgi -idle-timeout 300 -processes 5

<VirtualHost *:80>
    ServerName powermon
    DocumentRoot /home/p_user/Powermon/app/static
    Alias /static /home/p_user/Powermon/app/static

    AddHandler fastcgi-script fcgi
    ScriptAlias / /home/p_user/Powermon/runp.fcgi

    ErrorLog /home/p_user/Powermon/logs/powermon_error_log

    <Location />
        SetHandler fastcgi-script
    </Location>
</VirtualHost>

На сайтах я видел

000-default -> ../sites-available/default

Я добавил

010-powermon -> ../sites-available/Powermon

И когда я бегу apache2ctl -S я вижу

VirtualHost configuration:
wildcard NameVirtualHosts and _default_servers:
*:80            is a NameVirtualHost
    default server dhcp-ip-address.mycompany.com (/etc/apache2/sites-enabled/000-default:1)
    port 80 namevhost dhcp-ip-address.mycompany.com (/etc/apache2/sites-enabled/000-default:1)
    port 80 namevhost powermon (/etc/apache2/sites-enabled/010-powermon:7)
Syntax OK

Так что сейчас, когда я иду в machine-name/ в браузере я могу перемещаться по своему домашнему каталогу и просматривать файлы по мере необходимости. В идеале я хочу иметь возможность пойти в machine-name/powermon и посмотрите, как работает мое приложение.

Вы говорите, что хотите настроить виртуальные хосты Apache, но затем говорите следующее:

Так что сейчас, когда я иду в machine-name/ в браузере я могу перемещаться по своему домашнему каталогу и просматривать файлы по мере необходимости. В идеале я хочу иметь возможность пойти в machine-name/powermon и посмотрите, как работает мое приложение.

Путь на хосте не является виртуальным хостом. Ваша конфигурация настроена следующим образом: Трафик на powermon идет в один конфиг. Трафик в dhcp-ip-address.mycompany.com переходит в другой конфиг.

Таким образом, единственный способ, которым будет работать установка виртуального хоста Apache, - это перейти по этому URL-адресу и получить одно:

dhcp-ip-address.mycompany.com

Затем перейдите по этому URL-адресу и получите еще одну вещь:

powermon

Единственный способ действительно добиться этого с помощью настройки виртуального хоста Apache - изменить настройки клиента для просмотра веб-страниц. /etc/hosts файл вроде этого. Предположим, эти виртуальные хосты находятся на сервере с IP-адресом 123.456.78.90. Открой свой hosts файл - у меня Mac, так что я бы сделал это - через nano как это:

sudo nano /etc/hosts

И добавьте эту строку в конец файла:

123.456.78.90 powermon

Теперь, когда вы указываете в своем браузере:

http://powermon

Вы получите настроенный виртуальный хост Apache.

Но опять же, вы смешиваете концепцию пути к серверу с виртуальным хостом сервера. Так что вам нужно сгладить это, прежде чем делать что-либо еще. Кроме того, конфигурация вашего виртуального хоста для powermon кажется бессвязным. Предметы за пределами <VirtualHost *:80> должен войти внутрь. В противном случае эти параметры конфигурации просто будут использоваться сервером default config все равно. И User & Group настройки тоже кажутся неуклюжими. Сценарии должны быть настроены для использования пользователем и группой Apache. А не наоборот. Но при условии доброй воли я бы структурировал его так:

Пользователь p_user Группа p_group

Имя сервера powermon DocumentRoot / home / p_user / Powermon / app / static Псевдоним / static / home / p_user / Powermon / app / static

    LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

    FastCgiServer /home/p_user/Powermon/runp.fcgi -idle-timeout 300 -processes 5

    AddHandler fastcgi-script fcgi
    ScriptAlias / /home/p_user/Powermon/runp.fcgi

    ErrorLog /home/p_user/Powermon/logs/powermon_error_log

    <Location />
        SetHandler fastcgi-script
    </Location>

</VirtualHost>

Вы уверены, что создали мягкую ссылку на файл: / etc / apache2 / sites-available / Powermon?

Некоторые, например:

cd /etc/apache2/sites-enabled/
ln -s ../sites-available/Powermon