在运行的 apache 服务器上无法访问 http://localhost:80

Posted

技术标签:

【中文标题】在运行的 apache 服务器上无法访问 http://localhost:80【英文标题】:Can't get access to http://localhost:80 on running apache server 【发布时间】:2015-04-20 06:26:44 【问题描述】:

在 ubuntu 14.04 中运行 apache 服务器时,我在浏览器中获得 "This webpage is not available" 或使用 $ curl localhost 获得 "curl: (7) Failed to connect to localhost port 80: Connection refused"。此外,我可以连接到 127. * 。 * . *(例如 127.0.0.2)- 仅适用于 127.0.0.1

/etc/hosts

 127.0.0.1  localhost
 127.0.1.1  al-ubuntu
 # The following lines are desirable for IPv6 capable hosts 
 ::1     ip6-localhost ip6-loopback
 fe00::0 ip6-localnet
 ff00::0 ip6-mcastprefix
 ff02::1 ip6-allnodes
 ff02::2 ip6-allrouters

ports.conf

Listen 80

<IfModule ssl_module>
   Listen 443
</IfModule>

<IfModule mod_gnutls.c>
  Listen 443
</IfModule>

当我更改端口时,例如Listen 82 然后我可以连接到 localhost:82 或 127.0.0.1:82

没有任何进程使用80端口,除了apache2:

$sudo netstat -tulpn | grep 80

=> tcp6 0 0 :::80 :::* LISTEN 7127/apache2

/var/log/apache2/中有三个文件:

access.log, error.log and other_vhosts_access.log

重启apache2时:$ tail -f error.log

 [Thu Feb 19 16:03:19.570066 2015] [mpm_prefork:notice] [pid 1285] AH00169: 
 caught SIGTERM, shutting down
 [Thu Feb 19 16:03:20.673519 2015] [mpm_prefork:notice] [pid 3454] AH00163:   
 Apache/2.4.7 (Ubuntu) php/5.5.9-1ubuntu4.6 configured -- resuming normal  
 operations
 [Thu Feb 19 16:03:20.674355 2015] [core:notice] [pid 3454] AH00094: Command line: '/usr/sbin/apache2'

在所有日志文件中连接到本地主机 - 什么都没有。

我在其他 ubuntu14.04 系统上安装了 apache,一切正常。

80端口阻塞是什么原因,你知道是什么问题吗?

【问题讨论】:

当您重新启动它以及尝试连接但它不起作用时,您能否跟踪 Apache 错误日志? tail -f /var/log/apache2/error.log 老鼠屎,我将此信息添加到问题中。 你的服务器有防火墙吗?你应该检查 selinux 和 os 防火墙(iptables)状态 【参考方案1】:

这个问题与https://serverfault.com/questions/670575/failed-to-connect-to-127-0-0-1-port-80有关。

没有任何进程阻塞端口 80。与防火墙 NAT 规则相关的问题,将连接到 80 端口的连接重定向到另一个禁用的端口。它修复了删除这些规则。

【讨论】:

并非如此。在我的情况下,防火墙甚至没有启用 已编辑:对于那些使用“iptables”的人,请确保运行iptables -L 以查看是否有可用的规则。 iptablesfirewalldufw 等服务在未运行时 - 它们的规则可能仍会强制执行。【参考方案2】:

我遇到了同样的问题。 在我的 apache 的 httpd.conf 文件中,我有

Listen 198.166.2.1:8000

然后我把它改成:

Listen 8000

它同时适用于 localhost 和 ip 地址。

【讨论】:

以上是关于在运行的 apache 服务器上无法访问 http://localhost:80的主要内容,如果未能解决你的问题,请参考以下文章

在 Apache 上运行 ASP.net MVC 时无法访问 elmah.axd

Http Live Streaming 无法在 Apache 上运行

Http Live Streaming 无法在 Apache 上运行

在 ubuntu 上运行 php 脚本

无法解析域名的背后原因是什么?

Codeigniter 4:无法使用apache mode_rewrite访问页面