我有多个接口的实例,我试图用基于IP的虚拟主机来配置Apache,以服务于多个网站,但出于某种原因,它只是返回主文档根。
为了让多个接口正常工作,我遵循了这教程。
问题是:网站应该显示/var/www/mydomain/index.html
,但它显示的是/var/www/html/index.html
。
我尝试过的是:在VirtualHost中使用*:80,但目标是每个VirtualHosts都来自不同的IP/接口。从VirtualHost中移除端口:不会做任何事情。将Listen 80
更改为Listen 92.168.1.231:80
,这在Cannot assign requested address: AH00072: make_sock: could not bind to address 92.168.1.231:80
中失败。这令人担忧,我还没有找到任何解释。没有其他的监听端口,如果我只听所有80个端口,它就能正常工作。
关于我配置的信息:
/sbin/ifconfig
eth0: flags=4163 mtu 1500 inet 192.168.1.231网络掩码255.255.255.0广播192.168.1.2555.0广播192.168.1.255 inet6 fe80:f 816:3eff:fa 7:b 528前缀64个东莨菪碱0x20stacklineether fa:16:3e:E7:b5:28txQueelen1000(以太网) RX数据包8812字节6501811 (6.2 MiB) RX错误0删除0帧0 TX数据包3884字节331594(323.8 KiB) TX错误0下降0超出0载波0碰撞0 eth1: flags=4163 mtu 1500 inetbed192.168.1.232网络掩码255.255.255.0广播192.168.1.255 inet6 fe80::f816:3eff:3eff 1:e658前缀64 eth1:16:3e:A1:e6:58 txQueelen1000(以太网) RX数据包10623字节788238 (769.7 KiB) RX错误0删除0超出0帧0 数据包5290字节1647702 (1.5 MiB) TX错误0删除0超过0载波碰撞0 eth2: flags=4163 mtu 1500 inine192.168.1.233网络掩码255.255.255.0广播192.168.1.255 inet6 fe80::f816:3eff:fead:8432前缀64.0x20stackNewline eth2 fa:16:3e:广告:8432 txqueuelen 1000 (以太网) RX数据包6520字节396490 (387.1 KiB) RX错误0丢弃0超出0帧0堆栈新线TX数据包51字节4973 (4.8 KiB) TX错误0下降0超过0载波0碰撞0 eth3: flags=4163 mtu 1500 inetin192.168.1.234网络掩码255.255.255.0广播192.168.1.255stackNewlineinet6:f 816:3eff:fe4a:8dc7前缀64个范围0x20stackNewlineether fa:16:3e:4a:8d:c7 txqueuelen 1000 (以太网) RX数据包33438字节3106902 (2.9 MiB) RX错误0删除0超出0帧0 TX数据包26161字节16106821 (15.3 MiB) TX错误0删除0超过0载波0碰撞0 lo: flags=73 mtu 65536 量程127.0.0.1255.0.0.0 inet6 ::1前缀128个前缀0x10循环txqueuelen 1( Loopback) RX数据包1992年字节199852 (195.1 KiB) RX错误0删除0超出0帧0stackNewlineTX数据包1992年字节199852 (195.1 KiB) TX错误0丢弃0溢出0载波0碰撞0
VirtualHost配置: 92.168.1.231:80 www.mydomain.com (/etc/httpd/conf.d/sites.conf:1) ServerRoot:"/etc/httpd" Main DocumentRoot:"/var/www/html" Main ErrorLog: /etc/httpd/www.mydomain.com/error_log“ Mutex代理: using_defaults Mutex authn-socache: using_defaults Mutex默认值: dir="/run/httpd/”mechanism=default Mutex mpm-accept: using_defaults Mutex mpm“Mutex授权-不透明: using_defaults Mutex代理-平衡器-shm: using_defaults Mutex重写-map: using_defaults Mutex Auth文摘-client: using_defaults PidFile:"/run/httpd/httpd.pid"定义: DUMP_VHOSTS定义: DUMP_RUN_CFG用户: name="apache“id=48 Group: name="apache”id=48
cat /etc/httpd/con.d/sites.conf
<VirtualHost 92.168.1.231:80>
ServerName www.mydomain.com
ServerAlias mydomain.com
DocumentRoot "/var/www/mydomain/"
ErrorLog "/var/log/httpd/mydomain/error_log"
TransferLog "/var/log/httpd/mydomain/access_log"
</VirtualHost>
sudo -pntl (在httpd.conf和Apache中运行侦听80时)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 1191/memcached
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1221/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2090/master
tcp6 0 0 :::3306 :::* LISTEN 1386/mysqld
tcp6 0 0 ::1:11211 :::* LISTEN 1191/memcached
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::80 :::* LISTEN 8094/httpd
tcp6 0 0 :::22 :::* LISTEN 1221/sshd
tcp6 0 0 ::1:25 :::* LISTEN 2090/master
除了更改管理电子邮件、从主文档根目录中删除自动索引和设置服务器名称外,httpd.conf几乎是很普通的。
发布于 2016-12-21 09:40:01
我没有正确配置/etc/hosts
,但修复它没有帮助。我从基于IP的虚拟主机切换到基于域的主机,它神奇地得到了固定。我真的不知道为什么,但这很管用。
发布于 2016-12-18 10:10:07
在主服务器配置中,您应该拥有:
Listen 80
这指示apache在所有接口(以及所有IP上)上侦听。如果不希望apache在所有接口/ if上侦听,只能更改它。
您的VHosts应该配置如下:
<VirtualHost 192.168.1.231:80>
ServerName mydomain1.com
DocumentRoot /var/www/mydomain1
...
</VirtualHost>
<VirtualHost 192.168.1.232:80>
ServerName mydomain2.com
DocumentRoot /var/www/mydomain2
...
</VirtualHost>
还请检查本地dns服务器或/etc/hosts
文件是否指向正确的IP地址。
https://serverfault.com/questions/821164
复制相似问题