apache - 使本地网站可供本地网络中的所有设备使用

标签 apache ubuntu

我创建了一个 LAMP 服务器,并在其中托管了几个网站。这些网站目前只有在我从我的 Ubuntu 机器上访问它们时才可用。如何修改虚拟主机,使网络中连接的所有设备也可以访问这些网站?

网站的.conf位于/etc/apache2/sites-available/的文件如下所示:

网站1.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>

网站2.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>

主机文件如下所示:127.0.0.1 localhost website1.com website2.com
只需在浏览器中输入它们的名称,就可以从我的 Ubuntu 机器访问这两个网站,但网络中的任何其他设备都无法访问它们。

最佳答案

你必须做两件事。

1.设置Apache虚拟主机

虚拟主机必须监听您的私有(private) IP,而不是 localhost。
使用 ifconfig 查找您的私有(private) 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
...

我的私有(private)IP是 192.168.88.11

虚拟主机必须监听它:
<VirtualHost 192.168.88.11:80>

Note! Maybe *:80 also works!



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

本地网络中的其他机器必须知道在哪里网站1.com . DNS 服务器必须解析 网站1.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

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

关于apache - 使本地网站可供本地网络中的所有设备使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55575778/

相关文章:

apache - RewriteEngine 产生递归,尽管指定了 NS (nosubreq) - 为什么?

apache - Trafodion安装错误:运行traf_start时出错

linux - 在 Linux 中查找静态系统库的路径

phpMyAdmin 错误调用未定义的函数

qt - 升级 QT 5.4 或 Qt 5.5 - 安装并运行 - Ubuntu 14 和 15

php - 如果我回应了一个声明但没有人听到,它会得到回应吗? (PHP cron 作业问题)

php - 当我在网站上连接时,centos Redhat 上的 Apache Web 服务器加载时间很长

c++ - ZED SDK 加载共享库时出错 : libGLEW. so.1.13:无法打开共享对象文件:没有这样的文件或目录

apache - 如何使用带有 URL 参数的 SetEnv

ubuntu - 在ubuntu中设置权限