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?

Если это помогает, сервер размещается в облаке рэкспейса, а конфигурации максимально близки к значениям по умолчанию; Я не настраивал 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)
0
задан 19 September 2019 в 13:41
1 ответ

Посмотрев на вывод 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 снова увидит все внешние запросы.

1
ответ дан 4 December 2019 в 15:37

Теги

Похожие вопросы