Правильный хостинг своими руками.

Для следующей статьи нам понадобится связка NGINX + PHP5-FPM. Установим и настроим.

nginx[1]

Начнем с python-software-properties для удобного добавления репозиториев. Выполним в консоли сервера команды:

 

Теперь добавим репозиторий NGINX:

 

Далее, устанавливаем сам NGINX, PHP5-FPM и сопутствующий софт:

Устанавливаемые пакеты можно было бы и перечислить в строку, однако виртуальная машина в Digital Ocean в этом случае принудительно приводит к аборту. Выглядит это вот так:

 

Поэтому выполняйте команды одну за одной, последовательно. В процессе установки спросит пароль для MySQL, придумайте пароль посложнее и запишите его, впоследствии пригодится 🙂 Наш сервер будет исполнять PHP посредством PHP5-FPM. Никакой Apache нам не тарахтел, по двум причинам:

  1. NGINX потребляет меньше памяти, чем Apache;
  2. Каждый сайт будет «запускаться» от своего юзера.

Для быстрых правок на сервере я советую связку PuTTY + MC. Для более вдумчивой и комфортной работы — WinSCP + Sublime Text 3. Все это лезет на сервер посредством SSH/SFTP, поэтому стандартный FTP нам также не тарахтел 🙂

Создадим группу SFTP (выполняем команду в консоли):

 

Теперь запускаем MC, находим файл:

 

В конец файла добавляем:

 

Комментируем там же строку:

 

Теперь для нашего будущего сайта нужно создать домашнюю директорию, директорию для временных файлов, юзера, добавить его в группу SFTP и назначить домашнюю директорию. Выполняем команды:

 

Далее надо настроить PHP и NGINX. Открываем файл:

 

Втыкаем в него это:

 

Теперь открываем файл:

 

Можно сделать резервную копию старого, если хотите. В новый файл пишем:

 

Открываем файл:

 

Комментируем строку:

 

Настало время разобраться с виртуальными хостами. NGINX подгружает сайты из директории /etc/nginx/sites-enabled/, а рядом с ней есть директория /etc/nginx/sites-available/. В первой директории находятся симлинки на конфиг файлы сайтов из второй директории. Это очень удобно, для удаления/отключения виртуального хоста надо просто удалить симлинк и перезапустить NGINX. Стандартный конфиг файл для виртуального сервера выглядит так:

 

В этих настройках сразу активированы Frienfly URLs, отдача статики и отработка PHP посредством PHP5-FPM (для него обозначается backend, 1-я строка конфига). Следующий можно создавать, просто скопировав этот конфиг и поменяв название одного сайта, на название другого. Далее, создаем симлинк

 

Далее, надо создать процесс PHP5-FPM для сайта. Создаем файл:

 

В него пишем:

 

Перезапускаем сервисы:

Все 🙂

Настроил дома в лабе связку nginx + php-fpm + APC. Теперь довольно сложный в плане запросов к базе сайт отдаёт любую страницу максимум за пол-секунды.

Довольно показательный отчёт: “458 queries SQL time 0.3330s, Total time 0.5283s”

И этот показатель можно ещё более улучшить. Примерно раз в пять, если я справлюсь с memcached.

 

Вражеские технологии никогда не дадут заскучать. Сегодня пол-вечера имел удовольствие устанавливать торрент-клиент Transmission на Centos 6, которая пришла на замену XEN-server, который стоял на моём HP Microserver. Ксен, как технология виртуализации показал себя на нём не очень хорошо, а кроме того, мне давно хотелось попробовать KVM. Т.к. в CenotOS 6 KVM уже встроили даже в ядро, то выбор, в общем-то даже не стоял.
Однако, речь не виртуализации, а досуге. А досуг, как обычно, связан со зрелищами, которыми нас обеспечивает Интернет и торренты в частности.
Centos 6 – система новая, манов под неё не очень много и поэтому установка свежего Transmission на неё заняла раздражающе продолжительное время. Дабы сэкономить это время кому-нибудь, делаю дамп действий для успешной установки.

Continue reading

Да, хотя бы потому, что я уже сутки ебусь с куском говна по имени Ruby on the Rails, которая вся из себя такая пиздатая, такая охуенно быстрая и вообще без неё не работает RedMine. А чтобы поставить эту поеботу на чистую машину, надо просто обосраться. Одних команд для инсталляции компонент уже две страницы в блокноте и ещё не закончилось…

И вдруг, за всеми многостраничными обсуждениями и мануалами по установке этой злоебучей мутотени обнаруживается, что есть пакет установки “всё в одном”… Я чуть не застрелился.

Планируем раздачу Интернета.

Когда я только-только начинал работать с iptables, меня дико бесило то, что в Интернете гуру иптаблеса всё время посылали всех читать iptables handbook. Тем не менее, далеко не всем нужно знать этот самый хендбук наизусть, а вот настроить нат периодически необходимость бывает.

Простой нат поднимается двумя строчками. Но плох тот админ, который даст своим юзерам столько свободы. В типовой конфигурации для средней фирмы (скажем, 50 юзеров + AD) использовать нат ещё и довольно опасно — во-первых, будут активизироваться троян-дропперы, а во-вторых, есть риск «засветить» внешний IP-шник в стопспам-листах, и огрести нехилую кучу проблем с его «обелением».

Чтобы раздать Интернет, мы будем использовать SQUID с авторизацией через AD, iptables и Debian Linux. Убунту сервер тож подойдет.

Continue reading

По-честному стырено с Хабры.

Сегодня меня заинтересовал опрос надо ли перевешивать SSH на нестандартный порт. Сам опрос не так интересен как способ автораzivot_je_cudo защищать SSH от подбора пароля: после неверной попытки подключения блокировать новые попытки в течение 20 секунд. Задержка, видимо, выбрана эмпирически, исходя их двух противположных пожеланий: чтобы не заблокировать в случае опечатки себя надолго, и в тоже время усложнить жизнь подбиральщика. Я хочу поделиться своим способом противодействия брут-форсу, который применяю уже несколько лет. Он имеет два преимущества:
— дает мне больше попыток для набора правильного пароля
— но при этом блокирует брутфорсеров «навечно».
Continue reading