De ce Apache rulează pe portul 8080 în loc de portul 80? (Unix, Configurare, Apache Httpd, Vhost)

JJD a intrebat.

Sunt confuz de ce Apache nu răspunde pe portul 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.

… ci în schimb pe postul 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]

Nu prea multe prea văd în ieșirea de 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)

Cu toate acestea, netstat confirmă portul:

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

După cum a cerut Joel, iată aici este 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

Comentarii

  • Care este valoarea lui Listen din fișierul de configurare? –  > Por Bratchley.
  • @JoelDavis Ciudat. Cum se face? Nu-mi amintesc că am configurat manual portul (este o mașină Ubuntu proaspăt instalată). Vă rog să vă convertiți comentariul într-un răspuns dacă aceasta este soluția finală. –  > Por JJD.
2 răspunsuri
Bratchley

Care este valoarea Listen din fișierul de configurare din /etc/apache2/ports.conf?

jlliagre

De ce Apache rulează pe portul 8080 în loc de portul 80?

Motivul obișnuit pentru care apache este adesea configurat să asculte pe acest port este că un proces trebuie să fie rulat sub contul de root sau să i se acorde privilegii specifice pentru a putea asculta pe porturi TCP mai mici de 1024 iar acesta include, bineînțeles, portul 80.

Folosirea unui număr de port superior, fără privilegii, permite rularea lui apache sub un cont obișnuit, fără o configurație specifică.

8080 este un înlocuitor ușor de reținut pentru 80.

Comentarii

  • Există vreun punct în cadrul instalării Apache2 în care utilizatorul poate decide ce cont este utilizat pentru a rula serviciul? –  > Por JJD.
  • @jillagre Apache httpd nu are această limitare. Ar trebui să pornească întotdeauna ca root și apoi să coboare în contul specificat de către User pe cont propriu. Tomcat are această limitare (trebuind să ruleze ca root sau pe un port non-80) pentru că este un server de aplicații, așa că astfel de lucruri nu sunt obiectivul său principal. –  > Por Bratchley.
  • la JJD Din câte știu eu, nu cu pachetul ubuntu apache2. @JoelDavis Aveți dreptate 8080 este portul Tomcat implicit, iar pachetele apache2 sunt concepute pentru a porni ca root. Cu toate acestea, în cazul în care un utilizator care nu este root dorește să instaleze apache de la sursă sau dacă apache2 este instalat și pornit ca non root din alte motive, punctul de vedere este încă valabil. Apache nu cere să fie rulat ca root. –  > Por jlliagre.