apache + nginx + phpmyadmin
- alexg-nn
- Мастер
- Сообщения: 793
- Зарегистрирован: 08 фев 2015, 12:45
- Репутация: 127
- Настоящее имя: Алексей
- Откуда: Нижний Новгород
- Контактная информация:
apache + nginx + phpmyadmin
Ребяты, я, конечно, понимаю, что тема непрофильная, но, во-первых, концентрация линукс-мэнов тут более чем высокая, во-вторых, явно есть и администраторы, и в третьих, мне просто регаться на профильном форуме не хотелось, а тут я уже есть
Вопрос мой явно забитый и детский, но как ни бился, не смог решить проблему.
В общем, есть у меня VPS с ubuntu 14.04, на нём крутилось несколько сайтов на apache2 (виртуальные хосты). И там же был phpmyadmin. Всё было хорошо.
Потребовалось завести ещё пару сайтов на Node.js, посему решено было поставить nginx как прокси и раздавать с него трафик уже на апач или ноду.
Всё прошло хорошо, сайты завелись, но не завёлся phpmyadmin
Конфиги привожу, чтобы было попредметнее.
Основной сайт висит на 8090 порту, остальные - это поддомены.
phpmyadmin установлен с интеграцией apache2 в /usr/share/phpmyadmin
Сейчас, если зайти на SERVERNAME/phpmyadmin, то после пяти минут висения браузер вываливается с ошибкой таймаута. Если зайти на SERVERNAME/phpmyadmin/, то покажется окно логина phpmyadmin, но после авторизации получаю ту же ошибку по таймауту, а адресная строка станет вида SERVERNAME:8090/phpmyadmin/index.php?token=XXX Однако, если после этого снова зайти на SERVERNAME/phpmyadmin/, то я окажусь залогиненым в админку phpmyadmin
У меня слегка едет крыша от того, что же надо подкрутить. Виртуальные хосты настраивал вот по этому ответу.
Буду признателен за подсказки, если у кого подобная конфигурация работает.
Вопрос мой явно забитый и детский, но как ни бился, не смог решить проблему.
В общем, есть у меня VPS с ubuntu 14.04, на нём крутилось несколько сайтов на apache2 (виртуальные хосты). И там же был phpmyadmin. Всё было хорошо.
Потребовалось завести ещё пару сайтов на Node.js, посему решено было поставить nginx как прокси и раздавать с него трафик уже на апач или ноду.
Всё прошло хорошо, сайты завелись, но не завёлся phpmyadmin
Конфиги привожу, чтобы было попредметнее.
Основной сайт висит на 8090 порту, остальные - это поддомены.
phpmyadmin установлен с интеграцией apache2 в /usr/share/phpmyadmin
Сейчас, если зайти на SERVERNAME/phpmyadmin, то после пяти минут висения браузер вываливается с ошибкой таймаута. Если зайти на SERVERNAME/phpmyadmin/, то покажется окно логина phpmyadmin, но после авторизации получаю ту же ошибку по таймауту, а адресная строка станет вида SERVERNAME:8090/phpmyadmin/index.php?token=XXX Однако, если после этого снова зайти на SERVERNAME/phpmyadmin/, то я окажусь залогиненым в админку phpmyadmin
У меня слегка едет крыша от того, что же надо подкрутить. Виртуальные хосты настраивал вот по этому ответу.
Буду признателен за подсказки, если у кого подобная конфигурация работает.
- donvictorio
- Мастер
- Сообщения: 2451
- Зарегистрирован: 11 окт 2012, 16:26
- Репутация: 682
- Настоящее имя: Виктор
- Откуда: Санкт-Петербург
- Контактная информация:
Re: apache + nginx + phpmyadmin
если хотите хороший совет (не по теме, правда, но сильно упрощающий жизнь) - избавьтесь от апача. nginx, как вебсервер, покрывает 98% потребностей веб хостинга.
также по поводу phpmyadmin - если вы используете его как IDE для разработки и тестирования бд - это не оч хорошая идея. Навикат или dbforge с этим справляются куда лучше и удобнее. если лишь для нечастого администрирования бд на своём серваке - не обязательно делать глобальный алиас, это для хостеров удобно. для себя - сделайте хост с именем от балды на несуществующем домене и пропишите его в хосты на своей машине. так меньше левых людей будет долбиться на него и пытаться вскрыть, вам же никакой разницы не будет. либо оформите в виде поддомена, либо вообще слейте в каталог на каком-то рабочем сайте. а ещё проще - использовать для этих целей adminer. он вообще в одном файле php вмещается. прсотые вещи делать в нём можно и запускать откуда угодно вообще без каких-либо настроек.
https://www.adminer.org/
также по поводу phpmyadmin - если вы используете его как IDE для разработки и тестирования бд - это не оч хорошая идея. Навикат или dbforge с этим справляются куда лучше и удобнее. если лишь для нечастого администрирования бд на своём серваке - не обязательно делать глобальный алиас, это для хостеров удобно. для себя - сделайте хост с именем от балды на несуществующем домене и пропишите его в хосты на своей машине. так меньше левых людей будет долбиться на него и пытаться вскрыть, вам же никакой разницы не будет. либо оформите в виде поддомена, либо вообще слейте в каталог на каком-то рабочем сайте. а ещё проще - использовать для этих целей adminer. он вообще в одном файле php вмещается. прсотые вещи делать в нём можно и запускать откуда угодно вообще без каких-либо настроек.
https://www.adminer.org/
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: apache + nginx + phpmyadmin
Про phpmyadmin забыл уже очень давно, юзаю исключительно dbforge.
В качестве проверенной отсебятины могу рекомендовать lighttpd.
В качестве проверенной отсебятины могу рекомендовать lighttpd.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: apache + nginx + phpmyadmin
для dbforge нужна винда.MX_Master писал(а):Про phpmyadmin забыл уже очень давно, юзаю исключительно dbforge.
у phpmyadmin есть огромный плюс: не надо открывать доступ к mysql для всего мира, например чтобы иметь возможность порулить с помощью планшета на пляже.
P.S. nginx не пользую, считаю его лишним.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: apache + nginx + phpmyadmin
пхпадмин это как раз и есть доступ к вашим бд для всего мира, а еще это доступ ко всем скриптам, которые рядом с ним лежат. Я лучше внешний порт на пару часов приоткрою пока работаю с бд, чем буду оставлять еще один входUAVpilot писал(а):для dbforge нужна винда.MX_Master писал(а):Про phpmyadmin забыл уже очень давно, юзаю исключительно dbforge.
у phpmyadmin есть огромный плюс: не надо открывать доступ к mysql для всего мира, например чтобы иметь возможность порулить с помощью планшета на пляже
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: apache + nginx + phpmyadmin
Прямо-таки ко всем? На http://cncdevice.pro есть phpmyadmin - можешь попробовать доступиться.MX_Master писал(а):пхпадмин это как раз и есть доступ к вашим бд для всего мира, а еще это доступ ко всем скриптам, которые рядом с ним лежат.
За эти пару часов и ломанут, ибо в mysql защиты никакой.MX_Master писал(а):Я лучше внешний порт на пару часов приоткрою пока работаю с бд
P.S. Сейчас "хакеров" развелось - чем хочешь ешь. Ставишь сервер с IP-адресом, который до этого момента никогда и нигде не использовался - через полчаса-час во лог сыпятся записи о попытках подбора пароля по ssh...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: apache + nginx + phpmyadmin
Фаервол вышел из моды? Для меня обычное дело открывать порты на свой IP пока я работаю с сервером. Не говоря уже о том, что порты далеко не дефолтные. Если лично ваш пхпадмин засел как партизан и не один сканер его не отрыл - поздравляю, у вас талант. Но вот у автора темы он лежит почти на виду. Именно поэтому я и не рекомендую.
категорически согласен, но мы-то с вами не первый день в Интернете и умеем грамотно настраивать SSH вкупе с фаерволомUAVpilot писал(а):через полчаса-час во лог сыпятся записи о попытках подбора пароля по ssh...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: apache + nginx + phpmyadmin
При работе через сотовых операторов адрес может меняться даже в пределах одного "сеанса", как правило в местах большой нагрузки на сеть, на тех-же курортах.MX_Master писал(а):Фаервол вышел из моды? Для меня обычное дело открывать порты на свой IP пока я работаю с сервером.
А mysql как настраивать? У него ж даже нет элементарной защиты от подбора пароля...MX_Master писал(а):категорически согласен, но мы-то с вами не первый день в Интернете и умеем грамотно настраивать SSH вкупе с фаерволом
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- alexg-nn
- Мастер
- Сообщения: 793
- Зарегистрирован: 08 фев 2015, 12:45
- Репутация: 127
- Настоящее имя: Алексей
- Откуда: Нижний Новгород
- Контактная информация:
Re: apache + nginx + phpmyadmin
Дискуссия немного не в то русло пошла. Я PMA использую только когда надо визуально посмотреть табличку какую, остальное через консоль.
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: apache + nginx + phpmyadmin
Хорошо, давайте вернёмся от курорта с плохим сигналом к делу
А по кусочкам настроек, которые вы дали, всё чисто. Разве что не видно строчек вида
Могу объяснить последнее чудо. После успешного логина скрипт РМА сохраняёт свои куки в вашем браузере просто для домена SERVERNAME, не учитывая порт. Поэтому, далее заходя на этот адрес с любого порта, скрипт РМА законно покажет вам, что вы успешно вошли.alexg-nn писал(а):Сейчас, если зайти на SERVERNAME/phpmyadmin, то после пяти минут висения браузер вываливается с ошибкой таймаута. Если зайти на SERVERNAME/phpmyadmin/, то покажется окно логина phpmyadmin, но после авторизации получаю ту же ошибку по таймауту, а адресная строка станет вида SERVERNAME:8090/phpmyadmin/index.php?token=XXX Однако, если после этого снова зайти на SERVERNAME/phpmyadmin/, то я окажусь залогиненым в админку phpmyadmin
А по кусочкам настроек, которые вы дали, всё чисто. Разве что не видно строчек вида
Код: Выделить всё
NameVirtualHost 127.0.0.1:8080
NameVirtualHost 127.0.0.1:8090
- alexg-nn
- Мастер
- Сообщения: 793
- Зарегистрирован: 08 фев 2015, 12:45
- Репутация: 127
- Настоящее имя: Алексей
- Откуда: Нижний Новгород
- Контактная информация:
Re: apache + nginx + phpmyadmin
MX_Master, это понятно. Вопрос, как настроить правильно проксирование nginx. Например, почему адресная строка меняет вид? Порт 8090 вообще наружу не должен быть виден, это "междусобойчик" апача и nginx.
- alexg-nn
- Мастер
- Сообщения: 793
- Зарегистрирован: 08 фев 2015, 12:45
- Репутация: 127
- Настоящее имя: Алексей
- Откуда: Нижний Новгород
- Контактная информация:
Re: apache + nginx + phpmyadmin
Потому что эти директивы устарели, мне об этом заявляет апач при перезапуске.MX_Master писал(а):Разве что не видно строчек вида
NameVirtualHost has no effect and will be removed in the next release
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: apache + nginx + phpmyadmin
Из этих настроек я вижу что, если у апача включен SSL модуль или модуль GNUTLS, то апач становится доступен извне с адресов вида https://alexg-nn писал(а):Код: Выделить всё
listen 127.0.0.1:8090 listen 127.0.0.1:8080 listen 127.0.0.1:8081 listen 127.0.0.1:8082 listen 127.0.0.1:8083 listen 127.0.0.1:8084 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: apache + nginx + phpmyadmin
А наоборот?donvictorio писал(а):избавьтесь от апача. nginx, как вебсервер, покрывает 98% потребностей веб хостинга
Я, например, довольно часто использую .htaccess, который не обрабатывается nginx-ом
Это Вы не умеете его готовить У меня он, к примеру, завязан на сабдомен quitnasto.мойсайт.ru (буквы другие, но смысл тот же), плюс доступ к каталогу требует HTTP-авторизации, так что даже если кто-то и наткнется случайно на этот набор букв в сабдомене, то даже не поймет что там находится.MX_Master писал(а):пхпадмин это как раз и есть доступ к вашим бд для всего мира, а еще это доступ ко всем скриптам, которые рядом с ним лежат.
На днях переносил хостинг на другой сервер, записи о попытках входа по SSH начались буквально через 10 минут после поднятия сетиUAVpilot писал(а):Ставишь сервер с IP-адресом, который до этого момента никогда и нигде не использовался - через полчаса-час во лог сыпятся записи о попытках подбора пароля по ssh...
Есть fail2ban, он реализует защиту от перебора паролей практически для всех сервисов. У меня настроен 30-минутный бан после 3 неверных попыток.UAVpilot писал(а):А mysql как настраивать? У него ж даже нет элементарной защиты от подбора пароля...
Апач уже считает эти опции устаревшими. По крайней мере версия 2.4.6:MX_Master писал(а):А по кусочкам настроек, которые вы дали, всё чисто. Разве что не видно строчек вида
NameVirtualHost 127.0.0.1:8080
Код: Выделить всё
Oct 9 05:19:05 mysite httpd: AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf.d/httpd-vhosts.conf:20
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: apache + nginx + phpmyadmin
Я сам не ставил nginx, но читал всяческие рекомендации по этой теме... Вроде настроено правильно, только я видел, что секция server включена внутрь секции http. Не знаю насколько это критичноalexg-nn писал(а):Вопрос, как настроить правильно проксирование nginx
Что еще пишут:
Но опять же - не знаю, влияет ли это на поведение Апача или только на данные, которые скрипты могут получить из глобальных переменных.Т.к. теперь все запросы к Apache приходят не от удалённых клиентов, а от Nginx, то в итоге IP-адрес клиента Apache определяет как локальный (127.0.0.1). Для решения этой проблемы нам нужен модуль RPAF. Он берет тело заголовка X-Forwarded-For, присланного от фронтенда (Nginx) и заменяет значение заголовка REMOTE_ADDR на бекенде (Apache).
Но сам-то PMA видит, что обратились на сервер по адресу SERVERNAME:8090/phpmyadmin, он же не знает, что это прокся перенаправила сюда, а у сайта на самом деле совсем другой порт.alexg-nn писал(а):Например, почему адресная строка меняет вид? Порт 8090 вообще наружу не должен быть виден, это "междусобойчик" апача и nginx.
А вообще, что пишут в логах Апач и nginx? Предупреждения, ошибки? PHP лог выводит в отдельный файл или в апачевский лог?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: apache + nginx + phpmyadmin
"Подборщики" уже давно знают про fail2ban и пытаются его обойти - например одновременно атакуют с разных IP и делают попытки по одной в 40 минут или реже...AndyBig писал(а):Есть fail2ban, он реализует защиту от перебора паролей практически для всех сервисов. У меня настроен 30-минутный бан после 3 неверных попыток.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- AndyBig
- Мастер
- Сообщения: 3971
- Зарегистрирован: 07 мар 2014, 04:01
- Репутация: 1121
- Откуда: юг России
- Контактная информация:
Re: apache + nginx + phpmyadmin
Да флаг им в руки, сервер рассыпется от старости раньше, чем они таким образом подберут пару логин/парольUAVpilot писал(а):например одновременно атакуют с разных IP и делают попытки по одной в 40 минут или реже...