Столкнулся недавно с последствием плохо задокументированных изменений в настройках веб сервера Apache. Проявление проблемы:
netstat -tl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 [::]:mysql [::]:* LISTEN
на стеке IPv6 порт 80 слушается, но на IPv4 нет. По некоторым не убедительным объяснениям на форумах, говорилось, что теперь, якобы стеки объединили и прочий подобный бред. Проверить можно сразу же:
curl http://web_server_ip
curl: (7) Failed connect to web_server_ip:80; Connection refused
в соединении отказано, на файрволле разрешения есть:
firewall-cmd --list-all
public (active)
services: dhcpv6-client ssh
ports: 3306/tcp 80/tcp
Сам сервис фактически запущен и работает:
sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2017-03-31 10:14:44 MSK; 4min 16s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1181 (httpd)
Status: "Total requests: 1; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─1181 /usr/sbin/httpd -DFOREGROUND
├─2300 /usr/sbin/httpd -DFOREGROUND
├─2301 /usr/sbin/httpd -DFOREGROUND
├─2302 /usr/sbin/httpd -DFOREGROUND
├─2303 /usr/sbin/httpd -DFOREGROUND
└─2304 /usr/sbin/httpd -DFOREGROUND
Mar 31 10:14:43 HST systemd[1]: Starting The Apache HTTP Server...
Mar 31 10:14:44 HST httpd[1181]: systemd[1]: Started The Apache HTTP Server.
Причина:
если раньше в конфигурационном файле Apache достаточно было указать
Listen 80
чтобы сервер слушал порт TCP 80 на всех интерфейсах и стеках протоколов, то теперь для IPv4 необходимо явно указать:
sudo vi /etc/httpd/conf/httpd.conf
Listen 0.0.0.0:80
sudo service httpd restart
в результате имеем работоспособный сервис:
netstat -tl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 [::]:mysql [::]:* LISTEN
netstat -tl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:http [::]:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 [::]:mysql [::]:* LISTEN
на стеке IPv6 порт 80 слушается, но на IPv4 нет. По некоторым не убедительным объяснениям на форумах, говорилось, что теперь, якобы стеки объединили и прочий подобный бред. Проверить можно сразу же:
curl http://web_server_ip
curl: (7) Failed connect to web_server_ip:80; Connection refused
в соединении отказано, на файрволле разрешения есть:
firewall-cmd --list-all
public (active)
services: dhcpv6-client ssh
ports: 3306/tcp 80/tcp
Сам сервис фактически запущен и работает:
sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2017-03-31 10:14:44 MSK; 4min 16s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1181 (httpd)
Status: "Total requests: 1; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─1181 /usr/sbin/httpd -DFOREGROUND
├─2300 /usr/sbin/httpd -DFOREGROUND
├─2301 /usr/sbin/httpd -DFOREGROUND
├─2302 /usr/sbin/httpd -DFOREGROUND
├─2303 /usr/sbin/httpd -DFOREGROUND
└─2304 /usr/sbin/httpd -DFOREGROUND
Mar 31 10:14:43 HST systemd[1]: Starting The Apache HTTP Server...
Mar 31 10:14:44 HST httpd[1181]: systemd[1]: Started The Apache HTTP Server.
Причина:
если раньше в конфигурационном файле Apache достаточно было указать
Listen 80
чтобы сервер слушал порт TCP 80 на всех интерфейсах и стеках протоколов, то теперь для IPv4 необходимо явно указать:
sudo vi /etc/httpd/conf/httpd.conf
Listen 0.0.0.0:80
sudo service httpd restart
в результате имеем работоспособный сервис:
netstat -tl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 [::]:mysql [::]:* LISTEN
Комментариев нет:
Отправить комментарий