Apache 服务器无法访问

Apache 服务器无法访问

首先我要说的是,我不是系统管理员,但我被委托创建一个新的 apache 网络服务器。目前,我只是尝试安装基础包,确认它正常工作并在网络上通信...然后尝试设置 apache2-ldap 模块。

问题

当我尝试使用远程计算机上的浏览器访问新服务器的 IP 地址时(例如http://10.23.23.23),我收到 ERR_CONNECTION_TIMED_OUT 消息。

我如何安装

  1. 我执行了“apk add apache2”。这创建了默认的 conf 文件和 /var/www/localhost/htdocs/index.html 中的文件夹 / 文件
  2. 然后我编辑了 /etc/hosts 文件,使其看起来像这样:
mytestserver:/# cat /etc/hosts
127.0.0.1       localhost
127.0.0.1       webdev.<mydomainname>
  1. 我编辑了 /etc/apache2/httpd.conf 并添加了 ServerName。这些是目前 httpd.conf 文件中的一些条目:
   ServerName localhost
   DocumentRoot "/var/www/localhost/htdocs"    

   <Directory />
        Options FollowSymLinks
        AllowOverride none
    #    Require all denied
    #    Order allow,deny
    #    Deny from all
    </Directory>

    <Directory "/var/www/localhost/htdocs">
        Options Indexes FollowSymLinks
        AllowOverride All
    #    Require all granted
        Order allow,deny
        Allow from all
    </Directory>
  1. 然后我重新启动了 apache 并确保它启动时没有任何错误。

到目前为止我尝试过/检查过的内容

  1. 确保服务正在运行:mytestserver:/# wget rc-status 运行级别:默认 iptables [已启动] 网络 [已启动] snmpd [已启动] sshd [已启动] apache2 [已启动]

  2. 尝试使用 wget 从服务器本身访问服务器(不确定这是否是个好主意,但我认为这可以证明 http 流量正在此服务器上运行......)从下面的示例中可以看出,它有效。

mytestserver:/# wget localhost
Connecting to localhost (127.0.0.1:80)
index.html           100% |********************************************************************************************************************|    45   0:00:00 ETA

我停止了服务器上的 apache 并重试相同的 wget 测试,但失败了:

Connecting to localhost (127.0.0.1:80)
wget: can't connect to remote host (127.0.0.1): Connection refused

在我看来,这证明 Apache 本身正在该服务器上运行。

  1. 检查 netstat 的端口状态:
mytestserver:/# netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      213/sshd
tcp        0      0 :::80                   :::*                    LISTEN      5599/httpd
tcp        0      0 :::22                   :::*                    LISTEN      213/sshd
udp        0      0 0.0.0.0:161             0.0.0.0:*                           2305/snmpd
Active UNIX domain sockets (only servers)
  1. 当我尝试在远程计算机上打开浏览器时,我在 apache 错误日志上执行了 tail -f。但什么也没有显示出来。access.log 也是如此……这告诉我它根本没有到达服务器?

不确定还要检查什么。我目前正在阅读这里的其他帖子,看看是否能找到一些可以指引我正确方向的东西。但如果您有任何建议,我将不胜感激。谢谢。

答案1

根据您的描述,您似乎使用 localhost 作为服务器名称。正如评论中指出的那样,这始终是本地计算机。您需要 1) 将 Apache 配置为侦听 localhost 以外的名称(似乎您尝试使用 webdev),2) 向您本地网络上名为 webdev 的 DNS 服务器添加一条记录,以指向 mytestserver 的 IP,或者向 HOST 文件添加一条记录,指向测试客户端计算机上该服务器的 IP(不是 127.0.0.1),3) 确保您的防火墙已打开以接受端口 80 上的连接。如果这是您的 apache 配置的默认站点,您也可以通过 mytestserver 计算机的网络 IP(也不是 127.0.0.1,检查 ifconfig)简单地请求站点。

答案2

问题出在 apache 配置上。端口 80 已打开...但正在监听 :::80,
我将配置中的“监听”地址从以下地址更改为:

Listen 80

更改为:

Listen 0.0.0.0:80

现在一切正常了。我可以从远程机器启动该站点。

相关内容