Я следил за Руководство по установке 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