Назад | Перейти на главную страницу

Apache перестал принимать внешние запросы после перезапуска

Я размещаю клиентский сайт wordpress на сервере CentOS 7 с apache 2.4.6, размещенном за прокси-сервером cloudflare. Я настроил все около 8 месяцев назад, и с тех пор все работает нормально.

Около 5:30 утра веб-сайт отключился, показав таймауты. Я проверил логи, в /var/log/httpd/error_log Я нашел следующие записи примерно в то время, когда сайт перестал работать:

[Thu Sep 19 04:35:57.343495 2019] [mpm_prefork:notice] [pid 13447] AH00170: caught SIGWINCH, shutting down gracefully
[Thu Sep 19 04:35:58.598479 2019] [core:notice] [pid 22161] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Thu Sep 19 04:35:58.602722 2019] [suexec:notice] [pid 22161] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
[Thu Sep 19 04:35:58.638160 2019] [lbmethod_heartbeat:notice] [pid 22161] AH02282: No slotmem from mod_heartmonitor
[Thu Sep 19 04:35:58.701474 2019] [mpm_prefork:notice] [pid 22161] AH00163: Apache/2.4.6 (CentOS) PHP/5.4.16 configured -- resuming normal operations
[Thu Sep 19 04:35:58.701545 2019] [core:notice] [pid 22161] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'

С тех пор единственные записи в access_log были от местных запросов.

Для отладки я отключил прокси-сервер Cloudflare (теперь DNS указывает прямо на мой сервер), и у меня есть только index.html файл в корне сети. если я бегу wget mydomain.com локально на машине я получаю содержимое своего теста index.html нормально, и запись появляется в access_log. Если я попробую сделать то же самое на внешнем сервере, я получу следующую ошибку, а в access_log нет записи:

(mydomain.com)|<the server's ip>|:80... failed: Resource temporarily unavailable

Я дважды проверил конфигурацию iptables, но она не менялась с мая, поэтому я почти уверен, что это не проблема брандмауэра.

Я также перезапустил httpd, mariadb и перезагрузил сервер, но безрезультатно.

Есть ли что-нибудь еще, что может вызвать эти проблемы с apache?

Если это помогает, сервер размещается в облаке Rckspace, а конфигурации максимально приближены к значениям по умолчанию; Я не настраивал VirtualHosts или что-то в этом роде.

Вот результат netstat -l -n -t -p

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1459/master
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1383/mysqld
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1500/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      1459/master
tcp6       0      0 :::443                  :::*                    LISTEN      1110/httpd
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd
tcp6       0      0 :::80                   :::*                    LISTEN      1110/httpd
tcp6       0      0 :::22                   :::*                    LISTEN      1500/sshd

вывод nmap

Not shown: 999 filtered ports

PORT   STATE SERVICE VERSION

22/tcp open  ssh     OpenSSH 7.4 (protocol 2.0)

Посмотрев на вывод nmap, становится очевидно, что порты http (s) не отображаются. Это дополнительно подтверждается запуском firewall-cmd --list-all на сервере:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources:
  services: dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

чтобы исправить это, запустите: firewall-cmd --add-service=https --permanent. Вы можете подтвердить, что это работает, запустив firewall-cmd --list-all снова и посмотреть, если http появляется в services: раздел.

После этого apache chan снова увидит все внешние запросы.