我有一个 IP 192.0.2.1 ( example.com
) 的子域转发,我们称之为纳吉奥斯.example.com
纳吉奥斯曾就职于192.0.2.1/nagios但现在它不起作用了,因为应用程序.example.com 接管默认 阿帕奇 港口(:80)
那么如何解决我的问题呢? :)
我有几乎nagios默认配置httpdvhost,除了我添加了 <VirtualHost *:80 > 和 ServerName。
<VirtualHost *:80>
ServerName nagios.example.com
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
# SSLRequireSSL
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /path/file
Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
# SSLRequireSSL
Options None
AllowOverride None
Order allow,deny
Allow from all
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /path/file
Require valid-user
</Directory>
</VirtualHost>
PS:httpd -t -D DUMP_VHOSTS
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
*:80 is a NameVirtualHost
default server domain-alias.example (/etc/httpd/conf.d/app.conf:1)
port 80 namevhost domain-alias.example (/etc/httpd/conf.d/app.conf:1)
port 80 namevhost nagios.example.com (/etc/httpd/conf.d/nagios.conf:8)
Syntax OK
很抱歉“domain-alias.example”,但它是一种私人信息:)
答案1
如果您在内部使用虚拟主机,那么使用不同的端口进行虚拟主机配置总是更好的解决方案,因此在这种情况下,您可以在 8083 端口上设置 nagios 域:第一步:在 httpd.conf 中,您需要指定侦听端口:
Listen 8080
Listen 80
Listen 8083
在 httpd-vhosts.conf 中为要添加的每个虚拟主机添加一个 NameVirtualHost。
NameVirtualHost *:80
NameVirtualHost *:8080
NameVirtualHost *:8083
将您的文档根应用于请求的端口,仅此而已。
重新启动服务后,您可以检查端口是否打开以及哪个应用程序使用相同的端口:
netstat -tlnp
答案2
将端口更改为 VirtualHost *:8080 或 81。
看看是否有效。我在工作中的 apache 服务器上也遇到了类似的冲突问题,我将 virtualHost 更改为端口 8080,现在一切运行正常。