我创建了一个LAMP服务器,并在其中托管了两个网站。
这些网站当前仅在我从Ubuntu计算机上访问时可用。
如何修改虚拟主机,以便网络中连接的所有设备也可以访问这些网站?
网站的.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计算机访问这两个网站,但是网络中的任何其他设备都无法访问它们。
答案 0 :(得分:0)
您必须做两件事。
虚拟主机必须侦听您的专用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也可以!
局域网中的其他计算机必须知道 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
您必须找出路由器的功能才能进行设置。