Вход в Drupal 7 не работает на NGINX после включения SSL с Letsencrypt
Я следовал отличному учебнику по Digital Ocean, и сертификат SSL подтверждает, что он действителен. Однако логин Drupal для доступа к администратору больше не активируется, и страница просто перезагружается. Я включил отладку для журналов NGINX и ниже приведены результаты. Он заканчивается: *recv() не готов (11: ресурс временно недоступен). *
Что странно, наш сайт на Drupal работает просто отлично. Когда я сравниваю логи, единственная разница в том, что это появляется на сайте разработчика:
4 http строка запроса: "POST / пользовательский HTTP/1.1"
Ниже приведены подробные журналы отладки. Какие-либо предложения? Ниже приведены результаты curl -vvv на странице входа. Также nginx/1.4.6 (Ubuntu)
2016/01/21 11:38:56 [debug] 12534#0: *6467 записать новый буфер:1 f:0 00000000025F8510, pos 00000000025F8510, размер: 239, файл: 0, размер: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 http фильтр записи: l:0 f:0 s:239 2016/01/21 11:38:56 [debug] 12534#0: *6467 http выходной фильтр "/node/add/page? Render=overlay" 2016/01/21 11:38:56 [debug] 12534#0: *6467 http-фильтр копирования: "/node/add/page? Render = overlay" 2016/01/21 11:38:56 [debug] 12534#0: *6467 фильтр изображений 2016/01/21 11:38:56 [debug] 12534#0: *6467 xslt корпус фильтра 2016/01/21 11:38:56 [debug] 12534#0: *6467 http отложить фильтр "/node/add/page? Render=overlay" 00000000025F8670 2016/01/21 11:38:56 [debug] 12534#0: *6467 записать старый буфер t:1 f:0 00000000025F8510, pos 00000000025F8510, размер: 239 файл: 0, размер: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 записать новый буфер t: 0 f: 0 0000000000000000, pos 00000000006C6460, размер: 132 файл: 0, размер: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 записать новый буфер t: 0 f: 0 0000000000000000, pos 00000000006C6740, размер: 61 файл: 0, размер: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 http фильтр записи: l: 1 f: 0 s: 432 2016/01/21 11:38:56 [debug] 12534#0: *6467 http ограничение фильтра записи 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 writev: 432 2016/01/21 11:38:56 [debug] 12534#0: *6467 http write filter 0000000000000000 2016/01/21 11:38:56 [debug] 12534#0: *6467 http-фильтр копирования: 0 "/node/add/page? Render=overlay" 2016/01/21 11:38:56 [debug] 12534#0: *6467 http завершить запрос: 0, "/node/add/page? Render=overlay" a:1, c:1 2016/01/21 11:38:56 [debug] 12534#0: *6467 set http keepalive handler 2016/01/21 11:38:56 [debug] 12534#0: *6467 http закрыть запрос 2016/01/21 11:38:56 [debug] 12534#0: *6467 http обработчик журнала 2016/01/21 11:38:56 [debug] 12534#0: *6467 бесплатно: 00000000025F76A0, не используется: 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 бесплатно: 00000000025E6CC0, не используется: 2666 2016/01/21 11:38:56 [debug] 12534#0: *6467 бесплатно: 000000000263C350 2016/01/21 11:38:56 [debug] 12534#0: *6467 hc бесплатно: 0000000000000000 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 hc busy: 0000000000000000 0 2016/01/21 11:38:56 [debug] 12534#0: *6467 tcp_nodelay 2016/01/21 11:38:56 [debug] 12534#0: *6467 многоразовое соединение: 1 2016/01/21 11:38:56 [debug] 12534#0: *6467 добавлен таймер событий: 5: 65000:1453394401016 2016/01/21 11:38:56 [debug] 12534#0: *6467 post event 0000000002681950 2016/01/21 11:38:56 [debug] 12534#0: *6467 удалить опубликованное событие 0000000002681950 2016/01/21 11:38:56 [debug] 12534 # 0: * обработчик keepalive http 6467 2016/01/21 11:38:56 [отладка] 12534#0: *6467 malloc: 000000000263C350:1024 2016/01/21 11:38:56 [debug] 12534#0: *6467 recv: fd:5 -1 of 1024 2016/01/21 11:38:56 [debug] 12534#0: *6467 recv() не готов (11: ресурс временно недоступен) 2016/01/21 11:38:56 [debug] 12534#0: *6467 бесплатно: 000000000263C350 2016/01/21 11:39:10 [debug] 12534 # 0: * 6442 таймер событий del: 3: 1453394350048 2016/01/21 11:39:10 [debug] 12534#0: *6442 http keepalive handler 2016/01/21 11:39:10 [debug] 12534#0: *6442 закрыть http соединение: 3 2016/01/21 11:39:10 [debug] 12534#0: *6442 многоразового соединения: 0 2016/01/21 11:39:10 [debug] 12534#0: *6442 бесплатно: 0000000000000000 2016/01/21 11:39:10 [debug] 12534#0: *6442 бесплатно: 00000000025E12D0, не используется: 0 2016/01/21 11:39:10 [debug] 12534#0: *6442 бесплатно: 000000000263DDA0, не используется: 128
curl -vvv https ourdomain.org/user меньше
* SSLv3, рукопожатие TLS, Завершено (20):
SSL-соединение с использованием ECDHE-RSA-AES256-GCM-SHA384
Сертификат сервера:
тема: CN=ourdomain.org
дата начала: 2016-01-20 20:37:00 GMT
срок действия: 2016-04-19 20:37:00 по Гринвичу
subjectAltName: наш домен совпадает
эмитент: C = US; O = Let's Encrypt; CN = Let's Encrypt Authority X1
SSL-сертификат подтвердите.
GET / пользовательский HTTP / 1.1
Пользователь-агент: curl/7.35.0
Ведущий: ourdomain.org
Принять: /
> <Сервер: nginx/1.4.6 (Ubuntu) <Дата: четверг, 21 января 2016 г., 05:52:22 GMT <Соединение: keep-alive <Истекает: Солнце, 19 ноября 1978 года, 05:00:00 по Гринвичу
2 ответа
Похоже, это была проблема с конфигурацией в (необязательном) модуле доступа к домену (который позволяет "Drupal Way" управлять поддоменами с помощью администратора Drupal).
"Схема URL домена" должна быть установлена на "https://", а "Схема URL для доступа к этому домену" должна быть сделана "Активной".
Просто убедитесь, что SSL-сертификат создан правильно, потому что, как указывает эта проблема, "если https / ssl впоследствии не удастся из-за какой-то проблемы для этого сайта, администраторы не смогут легко войти и изменить это".
Вы реализовали этот шаг из учебника?
return 301 https: // $ host $ request_uri;
Если это так, то вполне вероятно, что вы находитесь в цикле перенаправления, потому что nginx перенаправит трафик 301 с порта 80 на 443.
Это само по себе неплохо, но если у вас есть другие перенаправления в вашей конфигурации, или если drupal перенаправляет на http:// местоположение, то вы застряли в цикле.
Я предлагаю вам попробовать установить расширение Firebug в Firefox, включить сетевой модуль, переключить "постоянный" и открыть страницу входа. Это даст вам хороший обзор запросов, которые выполняет ваш браузер, и тогда вы сможете увидеть, действительно ли вы отскакиваете назад и вперед между http и https.