我想在家中安装一个Apache Web服务器,以监听端口80和8080。
我已添加Listen 8080
到httpd.conf并重新启动了Apache服务,但服务器似乎未在8080上侦听。在http:// localhost:8080中打卡超时,并且不显示我的index.html,但显示http:/ / localhost将显示我的index.html。
如何让它收听80和8080?
我想在家中安装一个Apache Web服务器,以监听端口80和8080。
我已添加Listen 8080
到httpd.conf并重新启动了Apache服务,但服务器似乎未在8080上侦听。在http:// localhost:8080中打卡超时,并且不显示我的index.html,但显示http:/ / localhost将显示我的index.html。
如何让它收听80和8080?
Answers:
标准的Debian apache安装将具有以下配置片段:
听80 <IfModule mod_ssl.c> #尚不支持基于SSL名称的虚拟主机,因此不 #NameVirtualHost语句在这里 听443 </ IfModule>
这告诉apache监听端口80,如果配置了mod_ssl则监听端口443。在您的情况下,您需要:
Listen 80
Listen 8080
您需要确保在apache上运行重新启动而不是重新加载操作,以使其对新的Listen指令有所注意。最安全的做法是停止apache,确保其已死并重新启动。
如果此配置不起作用,请检查日志文件中是否有任何错误消息。您可以使用“ netstat -lep --tcp”来查看端口8080上是否有监听的内容。最后,如果其他所有操作都不起作用,请尝试在strace下运行apache来查看它是否试图绑定到该端口并失败,但不记录问题。
/etc/apache2/ports.conf
。
这些答案都是伟大的,但他们离开了,欧文的可能性也确实这样做了(“我已经添加了Listen 8080
”)可能意味着正是这听起来像(即,什么大卫曾建议)。
如果您已经完成此操作,但仍然发现它不起作用,请确保已为可能包含的每个子域正确配置了指令,包括默认的(如果已将其手动配置为在名称后立即侦听:80)。
您可能有这样的指令:
<VirtualHost *:80>
ServerName michaelsanford.com
etc…
</VirtualHost>
您需要将其更改为<VirtualHost *:8080>
或<VirtualHost *:*>
。
第1步
#vi httpd.conf
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
httpd(apache)侦听端口80,如果配置了mod_ssl,则侦听端口443。
Listen 80
Listen 8080
第2步
#su - service httpd restart
第三步
$ netstat -lntp
(并非所有进程都可以被识别,非拥有的进程信息也不会显示,您必须是root用户才能查看全部。)
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:111 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:47027 0.0.0.0:* LISTEN -
tcp 0 0 192.168.1.1:80 0.0.0.0:* LISTEN -
tcp 0 0 192.168.1.1:8080 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp 0 0 ::ffff:127.0.0.1:45100 :::* LISTEN 3149/java
tcp 0 0 :::111 :::* LISTEN -
tcp 0 0 :::80 :::* LISTEN -
tcp 0 0 :::57173 :::* LISTEN 3149/java
tcp 0 0 :::18197 :::* LISTEN 3149/java
tcp 0 0 :::22 :::* LISTEN -
tcp 0 0 ::1:631 :::* LISTEN -
tcp 0 0 :::40832 :::* LISTEN 3149/java
tcp 0 0 ::ffff:127.0.0.1:6880 :::* LISTEN 3149/java
您可能还需要检查是否已启用SELinux。SELinux的默认配置可能不允许您在非标准端口上运行Apache。这是一个向您显示是否正在运行SELinux以及如何禁用它(如果您不想使用它的功能)的站点。 http://www.crypt.gen.nz/selinux/disable_selinux.html
您可能需要将站点配置为端口8080才能起作用。通读Apache虚拟主机的文档。可以将每个“站点”设置为接受特定端口(和ip等)上的连接。您的http.conf中是否有仅配置为端口80的虚拟主机?
另外,您可以确认服务器正在使用8080 netstat -nlp
并在该端口上寻找条目,正在侦听。
假设linux netstat -lntp
以root身份运行,您可以看到apache是否正在监听8080。这将帮助您确定问题是apache无法监听还是是否有外部因素(例如防火墙,selinux等)导致apache连接超时。