Рейтинг:0

401 Требуется авторизация на Apache 2.2, когда скручивание приводит к ошибке 500 лака

флаг cn
[centos@staging03 ~]$ sudo netstat -plnt
Активные интернет-соединения (только серверы)
Proto Recv-Q Send-Q Локальный адрес Внешний адрес Состояние PID/имя программы   
TCP 0 0 127.0.0.1:80 0.0.0.0:* ПРОСЛУШАТЬ 3600/httpd          
TCP 0 0 127.0.0.2:80 0.0.0.0:* ПРОСЛУШАТЬ 1574/varnishd       
TCP 0 0 172.31.22.60:80 0.0.0.0:* ПРОСЛУШАТЬ 1539/nginx          
TCP 0 0 0.0.0.0:22 0.0.0.0:* ПРОСЛУШИВАТЬ 1251/sshd           
TCP 0 0 127.0.0.1:25 0.0.0.0:* ПРОСЛУШИВАТЬ 1501/мастер         
TCP 0 0 127.0.0.1:443 0.0.0.0:* ПРОСЛУШАТЬ 3600/httpd          
TCP 0 0 127.0.0.1:6082 0.0.0.0:* ПРОСЛУШАТЬ 1573/varnishd       
TCP 0 0 127.0.0.1:9000 0.0.0.0:* ПРОСЛУШАТЬ 3468/php-fpm        
TCP 0 0 127.0.0.1:11211 0.0.0.0:* ПРОСЛУШАТЬ 1229/memcached      
TCP 0 0 127.0.0.1:6379 0.0.0.0:* ПРОСЛУШАТЬ 1061/redis-сервер 1 
tcp 0 0 :::22 :::* ПРОСЛУШИВАТЬ 1251/sshd           
tcp 0 0 :::3306 :::* ПРОСЛУШАТЬ 1383/mysqld 

Я проверил, в чем проблема с моим сервером, и когда я это сделал:

завиток 127.0.0.1:80

Я получил:

Требуется Авторизация

Этот сервер не смог подтвердить, что вы имеют право доступа к документу просил. Либо вы неправильно указали учетные данные (например, неверный пароль) или ваши браузер не понимает, как предоставить требуемые учетные данные.


На другом сервере, где все работает, я получаю пустой ответ. Поэтому я думаю, что именно поэтому я получаю ошибку 500 лака от Apache.

В логе апача у меня ничего особо не получалось, когда я завивался, но до этого у меня получалось:

[Среда, 27 октября 2021 г., 17:02:25] [уведомление] обнаружен SIGTERM, завершение работы
[Среда, 27 октября, 17:02:25 2021] [уведомление] Механизм suEXEC включен (оболочка: /usr/sbin/suexec)
[Среда, 27 октября 17:02:25 2021] [уведомление] Дайджест: создание секрета для дайджест-аутентификации...
[Среда, 27 октября, 17:02:25 2021] [уведомление] Дайджест: выполнено
[Среда, 27 октября, 17:02:25 2021] [уведомление] FastCGI: инициализирован диспетчер процессов (pid 3602)
[Среда, 27 октября, 17:02:25 2021] [уведомление] Apache/2.2.15 (Unix) настроен DAV/2 mod_fastcgi/2.4.6 - возобновление нормальной работы

Таким образом, кажется, что FastCGI настроен правильно, и проблема, которую я получаю от Apache, как ни странно, связана с проблемой аутентификации. Есть ли что-нибудь еще, что я могу сделать, чтобы определить, в чем проблема?

Лак дает следующее:

   12 TxHeader b X-Varnish: 1537309960
   12 Протокол Rxb HTTP/1.1
   12 RxСтатус b 500
   12 RxResponse b Внутренняя ошибка сервера
   12 RxHeader b Дата: среда, 27 октября 2021 г., 21:14:18 по Гринвичу
   12 RxHeader b Сервер: Apache/2.2.15 (CentOS)
   12 RxHeader b Истекает: среда, 11 января 1984 г., 05:00:00 по Гринвичу.
   12 RxHeader b Cache-Control: без кэша, обязательная повторная проверка, max-age=0

Однако у меня нет возможности проверить, что такое внутренняя ошибка сервера 500, потому что журналы ошибок для php кажутся пустыми.

Рейтинг:1
флаг in

TODO Апач

  1. Увеличьте уровень журнала в Apache
  2. Проверьте разницу между HTTP-вызовом статического файла в Apache и вызовом PHP.
  3. Мониторинг журнала ошибок Apache с повышенной детализацией

Цель состоит в том, чтобы получить HTTP 200 из Apache, запустив завиток http://127.0.0.1, либо на домашней странице, либо в каком-либо статическом файле.

ТОДО Лак

  1. Обновите Varnish до поддерживаемой версии
  2. Добавьте внутренний зонд в свой VCL
  3. Мониторинг работоспособности серверной части через VSL

Основываясь на выводе VSL, которым вы поделились, я вижу, что вы используете древнюю версию Varnish. Видеть https://www.varnish-software.com/developers/tutorials/installing-varnish-centos/ чтобы узнать, как вы можете установить Лак 6.0 л на CentOS.

У вас есть не только безопасная версия Varnish, но и ваши инструменты VSL (например, лаковое бревно) также намного лучше, чем в используемой вами версии.

Вот пример бэкенда с проверкой работоспособности:

серверная часть по умолчанию {
    .хост = "127.0.0.1";
    .порт = "8080";
    .зонд = {
        .url = "/";
        .таймаут = 2с;
        .интервал = 5с;
        .окно = 10;
        .порог = 5;
   }
}

Это позволит вам постоянно следить за состоянием вашего бэкэнда. Вы можете сделать это с помощью следующей команды:

sudo лаклог -g сырой -я Backend_health

Вывод поможет вам понять, как ведет себя серверная часть и какой код состояния HTTP он возвращает в Varnish.

Объедините это с вашим стремлением получить код состояния HTTP 200 от Apache, и вы будете довольно близки к окончательному решению.

haher avatar
флаг cn
Разве ошибка 500, вероятно, не связана с php, и можем ли мы также регистрировать ошибки php?
Thijs Feryn avatar
флаг in
Это, вероятно, попадет в журнал ошибок веб-сервера, если все настроено правильно. Убедитесь, что отчеты об ошибках вашей среды выполнения PHP включены и что ошибки правильно регистрируются.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.