根据我的理解,因为我有一台具有29个可用IP的服务器,这意味着我应该可以在同一台机器上使用不同的IP制作多个网站。
我唯一的问题是如何做到这一点,我环顾四周,但似乎只是人们试图找到如果他们只有一个IP如何做到这一点。但我有一台运行Apache2和29 IPS的服务器
答案 0 :(得分:0)
您需要做的第一件事是查看是否在NIC接口上设置了IP地址,在SSH的命令行中输入ifconfig并查找具有您IP地址的接口,如果您只需要一个公共接口以下。
在SSH类型cd /etc/network/interfaces
中
然后输入ls -l
您将看到如下界面列表:
eth0
正是您要找的,如果您没有其他eth接口,请查看您是否eth0:0
eth0:1
eth0:2
执行以下操作。
假设我们要创建四个额外的虚拟接口,将4个IP地址(172.16.16.126,172.16.16.127,172.16.16.128,172.16.16.129和172.16.16.130)绑定到NIC。
输入cd /etc/network/interfaces
现在打开“eth0”文件并添加“IPADDR_START”和“IPADDR_END”IP地址范围,如下所示。
输入vi eth0
这个/ etc / network / interfaces文本为eth0分配了三个IP地址。
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.42
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
address 192.168.1.43
netmask 255.255.255.0
auto eth0:1
allow-hotplug eth0:1
iface eth0:1 inet static
address 192.168.1.44
netmask 255.255.255.0
别名接口不应具有“gateway”或“dns-nameservers”;动态IP分配是允许的。
以上配置是以前的传统方法,它反映了传统使用ifconfig配置网络设备。 ifconfig引入了别名或虚拟接口的概念。这些类型的虚拟接口具有接口形式的名称:integer和ifconfig将它们与真实接口非常相似。
保存并重新启动/启动网络服务
输入service network restart
验证是否使用IP地址创建了虚拟接口。
输入ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C
inet addr:172.16.16.125 Bcast:172.16.16.100 Mask:255.255.255.224
inet6 addr: fe80::20c:29ff:fe28:fd4c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1385 errors:0 dropped:0 overruns:0 frame:0
TX packets:1249 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:127317 (124.3 KiB) TX bytes:200787 (196.0 KiB)
Interrupt:18 Base address:0x2000
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C
inet addr:172.16.16.126 Bcast:172.16.16.100 Mask:255.255.255.224
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:18 Base address:0x2000
eth0:1 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C
inet addr:172.16.16.127 Bcast:172.16.16.100 Mask:255.255.255.224
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:18 Base address:0x2000
eth0:2 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C
inet addr:172.16.16.128 Bcast:172.16.16.100 Mask:255.255.255.224
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:18 Base address:0x2000
eth0:3 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C
inet addr:172.16.16.129 Bcast:172.16.16.100 Mask:255.255.255.224
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:18 Base address:0x2000
eth0:4 Link encap:Ethernet HWaddr 00:0C:29:28:FD:4C
inet addr:172.16.16.130 Bcast:172.16.16.100 Mask:255.255.255.224
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:18 Base address:0x2000
对于HTTP:
要设置基于名称的虚拟主机,您必须告诉Apache您将使用哪个IP来接收所有网站或域名的Apache请求。我们可以使用NameVirtualHost指令执行此操作。使用VI编辑器打开Apache主配置文件。
输入vi /etc/httpd/conf/httpd.conf
搜索NameVirtualHost并通过删除前面的#符号取消注释该行。
了NameVirtualHost 接下来添加您希望接收Apache请求的IP。更改后,您的文件应如下所示:
NameVirtualHost 192.168.0.100:80
现在,是时候为您的域设置虚拟主机部分,按Shift + G移动到文件的底部。在此示例中,我们正在为两个域设置虚拟主机部分
www.example1.com www.example2.com
在文件底部为每个站点添加以下虚拟指令,并在下面列出2个样本的IP地址。
<VirtualHost 192.168.0.100:80>
ServerAdmin webmaster@example1.com
DocumentRoot /var/www/html/example1.com
ServerName www.example1.com
ErrorLog logs/www.example1.com-error_log
CustomLog logs/www.example1.com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@example2.com
DocumentRoot /var/www/html/example2.com
ServerName www.example2.com
ErrorLog logs/www.example2.com-error_log
CustomLog logs/www.example2.com-access_log common
</VirtualHost>
您可以在域虚拟主机部分中添加要添加的指令。完成httpd.conf文件中的更改后,请使用以下命令检查文件的语法。
输入httpd -t
Syntax OK
建议在进行一些更改之后和重新启动Web服务器之前检查文件的语法,因为如果出现任何语法错误,Apache将拒绝处理某些错误,最终会影响您现有的Web服务器停机一段时间。如果语法正常。请重新启动Web服务器并将其添加到chkconfig,以使您的Web服务器仅在启动时在运行级别3和5中启动。
输入service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]