我将如何在本地服务器上与连接到同一网络的人一起广播子域/虚拟名称

Exp*_*oit 5 hosts apache2 webserver

我有一台服务器连接到具有 ubuntu 12.04 的路由器。它已经安装好了 apache/mysql/php,可以使用了。文件夹结构是这样的:

/var/www -- this isnt the root
-/libs
-/logs
-/public - this is the root
-/vhosts - all subdomains go here
Run Code Online (Sandbox Code Playgroud)

我在 vhosts 中有一个名为 mysite 的文件夹。我进入 /etc/apache2/sites-available 并创建了一个文件,这里是内容 - >(vhost 文件)。我还在 /etc/hosts 文件中添加了一个条目,其中包含:127.0.1.1 mysite.dev 我也做了

sudo a2ensite mysite
Run Code Online (Sandbox Code Playgroud)

我尝试通过 mysite.dev 和我们的公共 IP 从计算机访问该站点,但我无法查看它。当我尝试我们的公共 ip 时,上面结构中的公共目录确实显示在所有计算机上。但是对于在 vhosts 中添加的任何内容,该站点都不会显示。没有附加域,它只是我们的 ip。我尝试在站点可用的 mysite 文件中将端口从 80 更改为 9999 并尝试使用 myip:9999 但这也不起作用。我究竟做错了什么?

编辑:我忘了提到服务器在路由器上是 dmzed。

car*_*tad 1

可在一些本地计算机上访问

如果您希望mysite.dev仅在几台本地计算机上工作,您可以随时编辑它们的/etc/hosts文件。Windows 还具有可以编辑的主机文件,这些文件位于C:\Windows\System32\drivers\etc\hosts中。

在您想要设置能够访问 mysite.dev 的计算机上的主机文件中,只需将其添加到其底部(Windows 和 Linux):

SERVERIP mysite.dev www.mysite.dev
Run Code Online (Sandbox Code Playgroud)

SERVERIP替换为运行 Apache 的服务器的本地 IP 地址。

整个本地网络均可访问

如果您希望它在本地网络上工作,您需要一个 DNS 服务器并配置网络 DHCP 服务器,以便您的本地计算机通过您的服务器执行所有 DNS 查询。

首先,让我们安装bind

sudo apt-get install bind9
Run Code Online (Sandbox Code Playgroud)

然后我们需要开始配置绑定并添加 DNS 区域,在本例中为mysite.dev。首先编辑/etc/bind/named.conf.local文件并向其中添加以下块:

zone "mysite.dev" {
    type master;
    file "/etc/bind/zones/mysite.dev;
}
Run Code Online (Sandbox Code Playgroud)

然后,创建目录/etc/bind/zones

sudo mkdir /etc/bind/zones
Run Code Online (Sandbox Code Playgroud)

现在,让我们为mysite.dev域添加区域文件。创建并编辑文件/etc/bind/zones/mysite.dev并向其中添加以下内容:

$ORIGIN . ; -*- zone -*-
$TTL 600    ; 10 minutes
mysite.dev          IN SOA  YOURSERVERNAME. hostmaster.mysite.dev. (
                    2012102300 ; serial
                    6H         ; refresh
                    30M        ; retry
                    4W         ; expire
                    10M        ; minimum (10 minutes)
                )
                NS  YOURSERVERNAME.
                A   YOURSERVERIP

$ORIGIN mysite.dev.
www         A   YOURSERVERIP
Run Code Online (Sandbox Code Playgroud)

现在仔细看看这里。您需要将出现的两次YOURSERVERNAME和出现的两次YOURSERVERIP引用更改为与您的服务器匹配的值。例如server01.local10.0.0.2。要查找您的服务器名称,请hostname -f在服务器上的终端窗口中键入。

如果您要更改此区域文件中的任何内容(例如稍后添加子域或其他内容),您必须记住更新序列号。在本例中为2012102300。该值必须设置为更高的值,例如2012102301

重新启动绑定服务sudo service bind9 restart,您的域的 DNS 服务器应该已启动并正在运行。dig @localhost mysite.dev在跳到下一步之前,您可能应该通过从服务器本身运行来测试这一点。您还可以使用网络上的客户端计算机进行测试dig @YOURSERVERIP mysite.dev,其中YOURSERVERIP是您服务器的 IP 地址。

现在,您需要做的最后一件事是更新 DHCP 服务器配置并将本地服务器设置为(辅助,如果可能)DNS 服务器。不幸的是,我不能轻易地帮助你。

可通过互联网访问

由于没有名为.dev的顶级域名,因此 ICANN 有必要创建该域名。目前,他们的 gTLD 申请系统已关闭,但也许将来某个时候可以申请 .dev TLD。请注意,他们可能想要一大笔钱。