Configuration

為什麼 Apache 執行在 8080 埠而不是 80 埠?

  • February 21, 2022

我很困惑為什麼 Apache 在埠 80 上沒有響應……

$ wget http://localhost:80  
--2014-05-06 15:32:44--  http://localhost/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:80... failed: Connection refused.

…而是在 8080 後 …

$ wget http://localhost:8080
--2014-05-06 15:32:38--  http://localhost:8080/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 177 [text/html]
Saving to: ‘index.html’

100%[=================================================>] 177 --.-K/s   in 0s

2014-05-06 15:32:38 (16,4 MB/s) - ‘index.html’ saved [177/177]

在apache2ctl的輸出中看不到太多:

$ apache2ctl -t -D DUMP_VHOSTS
VirtualHost configuration:
*:80 is a NameVirtualHost
  default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
  port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
  port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)

但是,netstat確認了埠:

$ sudo netstat -anp | grep :8080
tcp6       0      0 :::8080        :::*       LISTEN      5353/apache2

正如喬爾所問,這裡是ports.conf

$ sudo cat /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default

Listen 8080

<IfModule ssl_module>
   Listen 443
</IfModule>

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

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
# NameVirtualHost *:8800
Listen 8800

Listen配置文件中的指令的值是什麼/etc/apache2/ports.conf

你的說 8080 和 8800,而不是 80,這就是你得到這些結果的原因。

為什麼 Apache 執行在 8080 埠而不是 80 埠?

通常將 apache 配置為偵聽該埠的常見原因是程序需要在 root 帳戶下執行或被授予特定權限才能偵聽低於1024並且當然包括 port 的 TCP 埠80

使用更高的非特權埠號允許在沒有任何特定配置的正常帳戶下執行 apache。

8080是一個容易記住的替代品80

引用自:https://unix.stackexchange.com/questions/128122