无法从 Internet 访问 apache

Can't access apache from Internet

这一定是一个常见问题,但我没有找到合适的答案:

我在办公室局域网中的 apache 服务器 运行 上有一个网站。我可以从所有计算机(甚至是通过 Wifi 的智能手机)查看页面。

所有计算机都连接到支持端口转发的路由器(具有静态 IP)。

我将路由器端口 8080 转发到内部 IP 192.168.1.5:80,这是 apache box (xubuntu 14.04)。

问题是,当我尝试从 Internet 上查看该站点时,我总是得到 connection refused 响应。我尝试了 http://www.canyouseeme.org 但响应仍然相同。当我从我的 LAN->Internet->Router->Apache 或直接从家庭 Internet->Router->Apache 尝试时,都会发生这种情况。 我知道(相当怀疑)路由完成了它的工作,因为如果我点击外部静态 IP:80 我进入它的界面,而当我点击 IP:8080 我得到 connection refused 响应。 Canyouseeme 同意(它在等待密码时超时)。

有趣(?)的是我没有安装防火墙,apache2.conf 是默认设置。

有人可以帮忙吗?

终于一切都清楚了;我的 ISP 不允许设置路由器防火墙,所以我所做的每项设置都是无效的。

所以回顾一下,首先要确保您的 ISP 确实在转发您的端口。

但是我无法建立我的网站(zoneminder 应用程序)所以我写下了解决方案以防其他人发现它有用:

首先,我假设 Apache 运行 默认设置没有问题。如果你想让一个站点(在你的系统中你会看到目录)作为你的 apache 服务器的根站点,你必须为 apache 创建一个 "rule":

首先通过执行

复制位于/etc/apache2/sites-available/目录(在Ubuntu系统中)的000-default.conf文件
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mysite.conf

mysite.conf 文件将是虚拟主机的设置,您需要 add/change 相应的内容:

DocumentRoot /my/site/directory
    <Directory />
         Options FollowSymLinks
         AllowOverride None
    </Directory>
    <Directory /my/site/directory/>
         Options Indexes FollowSymLinks MultiViews
         AllowOverride None
         Order allow,deny
         Allow from all
    </Directory>

不要忘记通过编辑 /etc/apache2/ports.conf.

来更改(如果需要)apache 正在侦听的端口