如何使用 Apache2 和 Ubuntu Server 在互联网上托管网站?

如何使用 Apache2 和 Ubuntu Server 在互联网上托管网站?

我在 Ubuntu Server 15.04 上运行 Apache2。为了简单起见,我删除了中间的所有路由器。目前,我的服务器直接连接到互联网。我的家庭网络中只有一台计算机。

我想要的只是这个 -

我运行curl 127.0.0.1以在本地访问网站。或者在我的浏览器中输入localhost应该会显示我的网站。

curl ipecho.net/plain | curl在其他机器上运行以访问同一个网站。或者输入http://<my ip addr>应该让我看到我的网站。

但不幸的是,我无法这样做。截至目前,我只能在本地访问我的网页,即通过输入localhost。我无法在互联网上查看此网站。我尝试过不同的端口(80, 72, 8090, 44346),但徒劳无功。我做错了什么?我只想通过互联网访问我的网站。

答案1

您说您的服务器现在直接连接到互联网。您可以从该服务器上的浏览器访问网站吗?外部系统是否成功?例如,是否ping google.com成功工作?您能从外部系统 ping 通您的服务器吗?如果您不知道其他系统需要用来访问您的服务器的外部 IP 地址,您可以通过在服务器上打开浏览器并访问来确定该 IP 地址我的 IP 是什么

如果你的系统上运行了防火墙软件,例如,iptables,您需要配置防火墙软件以允许入站连接到端口 80。对于 iptables,该命令sudo iptables -L将显示当前的防火墙规则。您可以使用 允许入站连接到端口 80,sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT或者您可以安装 Uncomplicated Firewall (UFW) 包以简化 iptables 防火墙规则的管理,sudo apt-get install ufw然后使用以下命令启用它并允许入站端口 80 连接:

sudo ufw enable
sudo ufw allow 80

如何在 Ubuntu 和 Debian 云服务器上使用 UFW 设置防火墙有关使用 UFW 的更多信息。

如果您确实可以从服务器访问互联网,并且防火墙软件没有阻止从外部系统访问该服务器,那么问题可能出在 Apache Web 服务器软件的配置上。检查 Apache 的/etc/httpd/conf/httpd.conf配置文件。查找以下行:

Listen 80 

该行将允许 Apache 监听系统所有 IP 地址上的端口 80 的连接。如果您看到的是Listen 127.0.0.1 80,则它只监听本地主机地址。

httpd.conf该文件或您网站的虚拟主机文件中是否有类似以下内容的部分/etc/httpd/conf.d

<Directory />
  Order Deny,Allow
  Deny from all
  Allow from 127.0.0.1
</Directory>

Deny from all后面跟着的语句只Allow from 127.0.0.1允许从本地主机地址进行访问。

相关内容