klink0v (klink0v) wrote,
klink0v
klink0v

Category:

Пара нюансов в NginX

Пара мелких нюансов в NginX, из серии "чтоб потом не забыть".

Допустим, хочется отдавать "/index.html" откуда-то из одной директории, а всё остальное — из какой-нибудь другой директории. Казалось бы, нет ничего проще. Пишем такой конфиг:

и с удивлением обнаруживаем, что это не работает.

А западло заключается в том, что если в URLе запроса отсутствует явная ссылка на конкретный файл, то NginX отдаёт индекс папки через внутренний редирект. Поэтому в вышеприведённой конфигурации он будет пытаться искать пресловутый "index.html" не в первом location, а во втором. Где его скорее всего нет. Поэтому никуда не деться, придётся добавить в конфигурацию как минимум ещё один, третий location:

Так работает.

Другой пример. У нас NginX играет роль Reverse Proxy. Где-то за ним стоит Apache, который отдаёт контент. Хочется перенаправлять пользователя на SSL в том случае, если он пришёл через "голый" HTTP. Одна беда: бэкенд и скрипты на нём не знают, какой же протокол использовал фронтенд при обработке той или иной сессии. Надо как-то ему это показать, причём желательно не сильно глубоко переделывая программный код уже имеющихся скриптов. Вот один из вариантов решения. На NginX-е помимо всего прочего указываем:

А на Apache вот это:

И, скажем, PHP-кодеры могут продолжать использовать конструкции типа 'if $_SERVER["HTTPS"]=="on"' и больше ни о чём не думать.

Tags: hints, it, nginx, администрирование
Subscribe

  • Пьяное тело

    Супруга возвращалась вчера из Красногорска. Ехала себе спокойно, никого не трогала. И тут на дорогу высовывается вот такое пьяное (а может…

  • Проблемы совместимости

    Чуть больше года тому назад я приобрел для супруги ноутбук ASUS VivoBook 16X M1603QA-MB253 (90nb0y82-m00fn0). В нём "из коробки" шло 16…

  • Импортозащемление

    "Не думал, не гадал он", но похоже что пресловутое импортозащемление докатилось таки и до меня. Насяльнике-мене мне вчерась объявил, что…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments