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

Как добавить в apache еще одно приложение?

Я следил за Руководство по установке Zabbix для Ubuntu и он попросил, чтобы я добавил файл /etc/apache2/sites-enabled/000-default содержащий

Alias /zabbix /home/zabbix/public_html/
<Directory /home/zabbix/public_html>
  AllowOverride FileInfo AuthConfig Limit Indexes
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  <Limit GET POST OPTIONS PROPFIND>
    Order allow,deny
    Allow from all
  </Limit>
  <LimitExcept GET POST OPTIONS PROPFIND>
    Order deny,allow
    Deny from all
  </LimitExcept>
</Directory>

Но у меня уже есть /etc/apache2/sites-enabled/railsapp

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
    UseCanonicalName Off
    Include /etc/apache2/conf/railsapp.conf
</VirtualHost>

<VirtualHost *:443>
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/cert.pem
    Include /etc/apache2/conf/railsapp.conf
    RequestHeader set X_FORWARDED_PROTO 'https'
</VirtualHost>

и /etc/apache2/sites-enabled/mercurial

NameVirtualHost *:8080

<VirtualHost *:8080>
    UseCanonicalName Off
    ServerAdmin  webmaster@localhost
    AddHandler cgi-script .cgi
    ScriptAliasMatch ^(.*) /usr/lib/cgi-bin/hgwebdir.cgi/$1
</VirtualHost>

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

Вам нужно будет указать Apache прослушивать дополнительный порт, а затем настроить конфигурацию приложения Rails на использование другого порта NameVirtualHost.

Судя по предоставленной вами информации о конфигурации, в вашей конфигурации Apache будет три параметра Listen:

Listen *:80
Listen *:443
Listen *:8080

Они могут быть распределены по нескольким файлам конфигурации в зависимости от того, как настроен Apache. Вы хотите добавить четвертый порт для прослушивания вашего приложения Rails, например 8081:

Listen *:80
Listen *:443
Listen *:8080
Listen *:8081

После установки этой дополнительной директивы Listen отредактируйте файл / etc / apache2 / sites-enabled / railsapp и измените первую директиву NameVirtualHost на 8081, например:

NameVirtualHost *:8081
NameVirtualHost *:443
....

Перезапустите Apache, и вы найдете zabbix на 80, приложение Rails на 8081/443 и Mercurial на 8080.

Тем не мение....

Если вы можете установить записи DNS в своей внутренней сети (я предполагаю, что это для внутреннего использования), вы можете настроить виртуальные хосты, которые различаются по имени домена, а не по порту. Тогда Apache нужно будет только прослушивать порты по умолчанию 80 и 443, и вы сможете различать приложения, используя URL-адрес домена, например:

zabbix.yourdomain.com
railsapp.yourdomain.com
mercurial.yourdomain.com

Преимущество этого заключается в том, что вы можете продолжать добавлять разные виртуальные хосты без необходимости каждый раз использовать новый порт. В Интернете есть множество документов, объясняющих, как это настроить (подсказка: см. документацию Ubuntu).

Единственное предостережение в отношении этого подхода состоит в том, что только один виртуальный хост может обрабатывать HTTPS-запросы на определенном порту (443) из-за способа работы протокола. Однако, если вам нужен доступ HTTPS только к одному из виртуальных хостов, это не проблема, просто не говорите другим хостам использовать HTTPS (443), и все будет в порядке.

У вас есть несколько вариантов; 1: установка zabbix на другой порт; 2: сделать его доступным под обычным vhost.

Для обновления №1 000-по умолчанию:

DocumentRoot / главная / zabbix / public_html

AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Порядок разрешить, запретить Разрешить со всех Запретить порядок, разрешить Запретить со всех

Для # 2

Переместите 000-default в /etc/apache2/conf/zabbix.conf и добавьте:

Включите /etc/apache2/conf/zabbix.conf

над аналогичным оператором Include в / etc / apache2 / sites-enabled / railsapp