Я размещаю клиентский сайт 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)
Посмотрев на вывод 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 снова увидит все внешние запросы.