在具有多个IPv4的同一服务器上运行多个网站

时间:2015-09-24 03:25:58

标签: html apache debian

根据我的理解,因为我有一台具有29个可用IP的服务器,这意味着我应该可以在同一台机器上使用不同的IP制作多个网站。

我唯一的问题是如何做到这一点,我环顾四周,但似乎只是人们试图找到如果他们只有一个IP如何做到这一点。但我有一台运行Apache2和29 IPS的服务器

1 个答案:

答案 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  ]