Apache2 403 ошибка с несколькими виртуальными хостами

У меня есть некоторые проблемы с моей установкой Apache2.

На прошлой неделе из-за сбоя жесткого диска я сделал общее резервное копирование, заменил жесткий диск на новый и снова установил все SO (Debian 7 AMD64) и Apache2. Я восстановил все данные из резервной копии на новый диск.

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

Нет ошибок в файлах ошибок Apache, а также нет ошибок или предупреждений при запуске Apache. Я также проверил разрешения и владельцев в файловой системе.

Вот мои файлы конфигурации:

apache2.conf

ServerRoot "/etc/apache2"

LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_event_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>

User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

AccessFileName .htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</Files>

DefaultType None
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel debug
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
 LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
 LogFormat "%h %l %u %t \"%r\" %>s %O" common
 LogFormat "%{Referer}i -> %U" referer
 LogFormat "%{User-agent}i" agent
 Include conf.d/
 Include httpd.conf

httpd.conf

<VirtualHost x.x.x.x:80>
        DocumentRoot /home/www/hostname.domain.tld
        ServerName hostname.domain.tld
        ServerAdmin soporte@domain.tld

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /home/www/hostname.domain.tld>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

<VirtualHost x.x.x.x:80>
        DocumentRoot /home/www/static.domain.tld
        ServerName static.domain.tld
        ServerAdmin soporte@domain.tld

        <Directory /home/www/static.domain.tld>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

<VirtualHost x.x.x.x:80>
        DocumentRoot /home/www/mail.anijapan.com
        ServerName mail.domain.tld
        ServerAdmin soporte@domain.tld

        <Directory /home/www/mail.domain.tld>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

<VirtualHost x.x.x.x:80>
        DocumentRoot /home/www/bugs.domain.tld
        ServerName bugs.domain.tld
        ServerAdmin soporte@domain.tld

        <Directory /home/www/bugs.domain.tld>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
</VirtualHost>

ports.conf

NameVirtualHost x.x.x.x:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Я пробовал разные вещи, смотрел в Google и т. Д. Безрезультатно.

Кто-нибудь имеет представление о моей проблеме?

Спасибо!

2 ответа

Решение

Я наконец достиг Apache, работающий без 403 ошибок. Причина ошибки 403 была очень простой, и она не находится на сервере.

Для управления доменом DNS я использую CloudFlare. Чтобы обеспечить обслуживание, когда сервер HD был изменен, я перевожу все веб-сайты на другой сервер с новым IP. После того, как я установил ОС поверх нового HD, я переместил веб-сайты на новый диск со спасательного сервера, и я изменил на CloudFlare IP-адрес для записей DNS на старый, но CloudFlare здесь не работает, потому что они этого не делают. по внутренней ошибке выкладываю новый IP адрес. Я видел, что создание traceroute (очень глупое решение, но эффективное), чтобы увидеть реальное конечное назначение записи A, а не конечное назначение, которое появляется в CloudFlare.

Чтобы заставить CloudFlare использовать правильную запись A, я удалил ее, сохранил изменения и затем добавил запись A к правильному IP-адресу. Как только я это сделал, все стало работать правильно.

Запустите apache следующим образом: передний план + отладка, если он не может записывать логи по какой-то причине, так он и запустится.

. /etc/apache2/envvars
apache2 -e debug -DFOREGROUND

Другой рекомендацией было бы посмотреть на /var/log/messages и /var/log/syslog, но вы, вероятно, уже сделали это. Больше информации на этой странице zroger.com

Другие вопросы по тегам