首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VirtualHost在多个接口上失败

VirtualHost在多个接口上失败
EN

Server Fault用户
提问于 2016-12-16 15:39:48
回答 2查看 1.4K关注 0票数 0

我有多个接口的实例,我试图用基于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

代码语言:javascript
运行
复制
<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时)

代码语言:javascript
运行
复制
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几乎是很普通的。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2016-12-21 09:40:01

我没有正确配置/etc/hosts,但修复它没有帮助。我从基于IP的虚拟主机切换到基于域的主机,它神奇地得到了固定。我真的不知道为什么,但这很管用。

票数 0
EN

Server Fault用户

发布于 2016-12-18 10:10:07

在主服务器配置中,您应该拥有:

代码语言:javascript
运行
复制
Listen 80

这指示apache在所有接口(以及所有IP上)上侦听。如果不希望apache在所有接口/ if上侦听,只能更改它。

您的VHosts应该配置如下:

代码语言:javascript
运行
复制
<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地址。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/821164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档