#php #laravel #nginx
Вопрос:
У меня странная проблема, когда Laravel не работает по протоколу HTTPS, но отлично работает по протоколу http.
Если я перейду на свою домашнюю страницу»/», это сработает. Но если я попытаюсь перейти на любой другой маршрут, он выдаст мне белый экран.
В хранилище/журналах нет журналов, журналы ошибок nginx пусты, а журналы доступа nginx показывают, что запрос получен.
То, что я сделал:
1. Я повторил код, изменив index.php Сбой происходит где-то с этим называется:
public/index.php
echo 'Working!'; $response = tap($kernel-gt;handle( $request = Request::capture() ))-gt;send(); echo 'Crashes';
2. Я прокомментировал все мое промежуточное программное обеспечение в app/Http/Kernel.php. Все еще случается
Любое это происходит ТОЛЬКО при активации HTTPS, но работает с http. Есть какие-нибудь идеи, что это может быть?
Комментарии:
1. Является ли этот белый экран результатом какой-либо ошибки? Каков код ответа HTTP?
2. Проверьте, работает ли модуль перезаписи в случае
HTTPS
настройки3. Я превратил отладку в истину. Это трудно диагностировать, потому что я ничего не получаю ни в каких журналах, кроме журнала доступа.
4. Можете ли вы проверить диск. Может быть, он полон.
5. Каков код ответа HTTP? Что еще вы пытались решить проблему, например: добавить дамп var, вызвать фатальные ошибки,….
Ответ №1:
Я понял это, проблема была в твоем app/Http/TrustProxies.php, у вас есть эта строка:
protected $proxies = '*';
Вы, вероятно, получите это, если у вас есть https, завершающийся в балансировщике нагрузки, и перенаправленный на порт HTTP в экземпляре (мы находимся на AWS и у нас есть эта настройка).
Вы можете настроить его так, чтобы он доверял только определенным прокси-серверам, но эта проблема не приведет к появлению сообщения об ошибке в любом месте, которое поможет вам отладить его.