После фиксации этого у Вас также есть проблема с RewriteRule. Звездочка не может выдержать в конце строки. Вероятно, это отсутствует после точки, таким образом, Вы не только соответствуете однобуквенным названиям страницы.
RewriteRule ^(.*)$ http://site.eu/$1 [R=301,L]
Я предполагаю, что вы уже подняли уровень ведения журнала ошибок Nginx до отладки. Если нет, начните с этого места.
Лучше всего, вероятно, будет использовать strace
для просмотра системных вызовов, выполняемых Nginx. В частности, вам нужно обратить внимание на вызовы connect ()
и следить за их кодами возврата (здесь вам может быть man 2 connect
).
. Получив эту информацию, вы сможете сделать обоснованное предположение о том, связана ли проблема только с внешним прокси-сервером или как-то связано с взаимодействием между прокси-сервером и внутренним сервером приложений.
Ничего более педантичного, чем это, если только вы не хотите использовать датчики dtrace:
Установите уровень журнала отладки: /etc/nginx/nginx.conf:
. ..
http {
...
error_log /var/log/nginx/error.log отладка; # todo testing удалите меня не для производственного использования
...
}
Настройте tcpdump в другом окне:
tcpdump не порт 22 -vvv -s0 -q -XXX
Отслеживайте файлы журнала в еще одном окне:
tail -f / var / log / nginx / *
Интерактивный запуск nginx с помощью strace:
# вверху /etc/nginx/nginx.conf:
демон выключен; # todo testing удалите меня не для производственного использования
А затем
$ strace nginx
Дальнейшую отладку можно выполнить с помощью nginx, скомпилированного с помощью - with-debug
. Проверьте это, запустив:
nginx -V 2>&1 | grep -- '--with-debug' # no output if not debug
Еще один хороший модуль, не скомпилированный по умолчанию: HttpStubStatusModule . Скорее всего, для любой достойной установки потребуется скомпилированный nginx (настоятельно рекомендуется упаковывать с использованием инструментов упаковки дистрибутива).
Большинство из них непригодны для производственного использования, посмотрите на компиляцию nginx с gperf, если вам нужна дополнительная статистика.
Похоже, вы отлаживаете сайт с высоким трафиком.
Используйте debug
с debug_connection
, чтобы журнал ошибок nginx отображал журналы отладки только с вашего IP-адреса.
Как только вы начнете видеть некоторые полезные журналы ошибок вместо активации опции отладки для всей конфигурации nginx, добавьте отдельную директиву error_log / path / to / some / file / debug;
в location {. .}
блок, отвечающий за соединение reverse_proxy.
Таким образом, вы сможете изолировать журнал ошибок отладки только от вашего IP.
Попробуйте связать его с запросом, который вы делаете (из вашего браузера).
Например, проверьте: https://easyengine.io/tutorials/nginx/debugging/
На следующий уровень вы можете использовать Nginx HttpEchoModule
Я никогда не считал Nginx узким местом, в большинстве случаев он более чем способен, чем серверные части. Но если вы тестировали без Nginx и не обнаружили ошибок, то это будет либо (или оба):
Не видя ваших конфигураций Nginx, никто не может прокомментировать первое. А без подходящих выходных данных ОС никто не может прокомментировать последнее.