使本地网站可用于本地网络中的所有设备

时间:2019-04-08 14:30:43

标签: apache ubuntu

我创建了一个LAMP服务器,并在其中托管了两个网站。
这些网站当前仅在我从Ubuntu计算机上访问时可用。
如何修改虚拟主机,以便网络中连接的所有设备也可以访问这些网站?

位于/ etc / apache2 / sites-available /中的

网站的.conf文件如下:

Website1.com

<VirtualHost *:80>
  ServerAdmin webmaster@website1.com
  ServerName website1.com
  ServerAlias www.website1.com
  DocumentRoot /var/www/html/website1.com/public

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Website2.com

<VirtualHost *:80>
  ServerAdmin webmaster@website2.com
  ServerName website2.com
  ServerAlias www.website2.com
  DocumentRoot /var/www/html/website2.com/public

  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

hosts文件如下所示:
127.0.0.1 localhost website1.com website2.com

只要在浏览器中输入名称即可从我的Ubuntu计算机访问这两个网站,但是网络中的任何其他设备都无法访问它们。

1 个答案:

答案 0 :(得分:0)

您必须做两件事。

1。设置Apache虚拟主机

虚拟主机必须侦听您的专用IP,而不是本地主机。 在终端中使用ifconfig命令找到您的私有IP,然后在输出中查找它。

$ ifconfig
...
wlp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.88.11  netmask 255.255.255.0  broadcast 192.168.88.255
...

我的私人IP是 192.168.88.11

虚拟主机必须收听它:

<VirtualHost 192.168.88.11:80>

注意!也许*:80也可以!

2。在您的本地网络中设置DNS服务器。

局域网中的其他计算机必须知道 website1.com 在哪里。 DNS服务器必须将 website1.com 解析为 192.168.88.11

我的路由器是MikroTik。然后,通过管理面板,使用路由器的终端,我可以配置域的静态DNS以解析为内部ip。

/ip dns static add name=website1.com address=192.168.88.11

我还可以使用正则表达式通过一个静态记录来匹配多个域。 下面的正则表达式匹配所有 .lan 域: foo.lan bar.lan anysite.lan 等..所有这些都将解析为192.168.88.11。

/ip dns static add regexp=".+\.lan" address=192.168.88.11

您必须找出路由器的功能才能进行设置。