我已经创建了一个LAMP服务器,在那里我托管了几个网站。
这些网站目前只有在我从我的Ubuntu机器上访问时才可用。
如何修改虚拟主机,使网络中连接的所有设备也可以访问这些网站?
网站的.conf文件位于/etc/apache2/sites-available/中,如下所示:
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机器上访问,只需在浏览器中输入它们的名称,但网络中的任何其他设备都无法访问它们。
发布于 2020-03-09 00:17:19
你必须做两件事。
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您必须了解路由器的功能才能对其进行设置。
https://stackoverflow.com/questions/55575778
复制相似问题