This shows you the differences between two versions of the page.
ru:nginx [2014/01/29 18:19] 127.0.0.1 external edit |
ru:nginx [2018/09/04 13:08] (current) admin [Ошибка 2] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Nginx ====== | ||
+ | |||
+ | Nginx - это HTTP-сервер, | ||
+ | |||
+ | Сейчас становится все более распространенной схема front\back - nginx\Apache. | ||
+ | |||
+ | Смысл этой связки в том, что все входящие конекты принимает nginx (базово более быстрый) и раздает статику, | ||
+ | |||
+ | ===== Ошибка 1 ===== | ||
+ | |||
+ | Однако тут есть ньюанс: | ||
+ | |||
+ | Другой вариант настройки: | ||
+ | |||
+ | Что бы восстановить нормальную ситуацию и дать трейдскрипту работать надо попросить ваш суппорт поставить для apache модуль mod_realip, а в конфиге nginx прописать, | ||
+ | |||
+ | Итого: если открыть / | ||
+ | |||
+ | ===== Ошибка 2 ===== | ||
+ | |||
+ | Другая распространенная ошибка в том, что ИП серфера передается не только в REAL_IP, но еще в и HTTP_FORWARED_FOR. | ||
+ | |||
+ | Определить это так же просто - если открыть / | ||
+ | |||
+ | Смарт определяет прокси в том числе по полю HTTP_FORWARED_FOR и ему начинается казаться что все хиты идут через прокси. | ||
+ | |||
+ | Как пофиксить: | ||
+ | |||
+ | Результат должен быть такой: REMOTE_ADDR и REAL_IP - ваш реальный ИП, SERVER_ADDR - IP сервака (и логично что ваш ип и ип сервака не совпадают), | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Итого: если открыть / | ||
+ | * REMOTE_ADDR - ваш IP | ||
+ | * SERVER_ADDR (SERVER_IP) - IP сервера | ||
+ | * HTTP_FORWARDED_FOR (или HTTP_X_FORWARDED_FOR) быть не должно | ||
+ | |||
+ | |||
+ | |||
+ | ===== Admin password ===== | ||
+ | |||
+ | По дефолту авторизация в админку - это базовая технология апача (.htaccess), | ||
+ | |||
+ | **Вариант 1 ** | ||
+ | |||
+ | В админке переключаетесь на " | ||
+ | |||
+ | **Вариант 2** | ||
+ | |||
+ | Попросить админа прописать в nginx что-то вроде | ||
+ | |||
+ | < | ||
+ | |||
+ | location / | ||
+ | deny all; | ||
+ | } | ||
+ | |||
+ | location /scj/logs/ { | ||
+ | deny all; | ||
+ | } | ||
+ | |||
+ | location /scj/data/ { | ||
+ | deny all; | ||
+ | } | ||
+ | |||
+ | location / | ||
+ | deny all; | ||
+ | } | ||
+ | |||
+ | location /scj/admin/ { | ||
+ | auth_basic "Admin Zone"; | ||
+ | auth_basic_user_file / | ||
+ | } | ||
+ | |||
+ | location ~* / | ||
+ | index index.php; | ||
+ | auth_basic "Admin Zone"; | ||
+ | auth_basic_user_file / | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Nginx password error ===== | ||
+ | |||
+ | Есть несоклько вариантов задать пароль | ||
+ | |||
+ | - .htaccess - это конфиг файл для апача, если вы запрашиваете любой файл из каталога где лежит .htaccess - апач сначала читает его. В дефолтном варианте админка закрыта базовой авторизацией апача - в htaccess написано грубо говоря " | ||
+ | - Вариант 2 - пароль спрашивает сам скрипт scj/ | ||
+ | - пароль может спрашивать nginx. Как было сказано выше он не умеет читать .htaccess но в конфиге nginx можно указать что пароль опять же в .htpasswd (как в примере выше) | ||
+ | |||
+ | Возможна следующая ошибка: | ||
+ | стоит авторизация в варианте 3, те nginx (например пароль1) и вы в то же время включаете авторизацию 2 - когда спрашивает пароль скрипт (условно пароль2). Но поскольку у браузера поле ввода пароля одно то туда можно ввести только 1 пароль и получается что либо одна либо другая авторизация не пройдет тк разные пароли. | ||
+ | |||
+ | Что делать: | ||