首先我要说的是,我不是系统管理员,但我被委托创建一个新的 apache 网络服务器。目前,我只是尝试安装基础包,确认它正常工作并在网络上通信...然后尝试设置 apache2-ldap 模块。
问题
当我尝试使用远程计算机上的浏览器访问新服务器的 IP 地址时(例如http://10.23.23.23),我收到 ERR_CONNECTION_TIMED_OUT 消息。
我如何安装
- 我执行了“apk add apache2”。这创建了默认的 conf 文件和 /var/www/localhost/htdocs/index.html 中的文件夹 / 文件
- 然后我编辑了 /etc/hosts 文件,使其看起来像这样:
mytestserver:/# cat /etc/hosts 127.0.0.1 localhost 127.0.0.1 webdev.<mydomainname>
- 我编辑了 /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>
- 然后我重新启动了 apache 并确保它启动时没有任何错误。
到目前为止我尝试过/检查过的内容
确保服务正在运行:mytestserver:/# wget rc-status 运行级别:默认 iptables [已启动] 网络 [已启动] snmpd [已启动] sshd [已启动] apache2 [已启动]
尝试使用 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 本身正在该服务器上运行。
- 检查 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)
- 当我尝试在远程计算机上打开浏览器时,我在 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
现在一切正常了。我可以从远程机器启动该站点。