Чем больше я набираю опыта в администрировании веб-серверов, тем смешнее мне читать то, что пишут в сети о домашнем хостинге. Но самое интересное, что пишут эти мифы те, кто никогда даже не пробовал ставить сервер дома либо вообще ничего об этом не знает. Я отобрал несколько самых распространённых мифов и сейчас их разрушу. После этого дам пошаговое руководство к дальнейшим действиям по постройке своего домашнего веб-сервера.

Для чего нужен домашний web сервер?

Снижение цен на тарифы интернет провайдеров и постоянное увеличение скорости доступа в сеть дают отличную возможность установки web сервера у себя дома. Такой сервер ничем не уступает серверам, расположенным в датацентрах. На нём можно, например, разместить свой блог, сайт или даже магазин да и вообще разместить любой вебсервис. Я знаю случаи, когда на домашнем сервере размещали достаточно крупные коммерческие проекты, всё успешно работало и приносило хороший доход.

Ко всему этому добавлю, что, установив сервер дома, Вы получите огромный опыт в администрировании сервера. С таким опытом Вы впоследствии сможете легко настроить любой сервер,  расположенный в датацентре, и Вам не придётся заказывать платную техподдержку.

Тот, кто делает сайты на Joomla!, знает на личном опыте, что стоит установить на этот движок несколько компонентов и модулей, как сайт начинает заметно медленней работать. Конечно же, можно включить в админке кеширование, но и это не особо ускоряет работу сайта.

Давайте разберёмся, почему это происходит и как исправить такую ситуацию в лучшую сторону. Joomla!, как и большинство других движков, написана на скриптовом языке программирования PHP. Это значит, что на PHP написаны сценарии (скрипты), в которых описаны последовательности операций для получения какого-либо результата. В нашем случае там прописано, что и как должно работать на сайте. Рассмотрим подробнее, как это работает.

Пользователь заходит на Ваш сайт - в этот момент на сервер из его браузера идёт запрос к странице, которую он запросил. Сервер принимает этот запрос и, если в коде страницы есть PHP код, передаёт этот код в интерпретатор PHP. Задача интерпретатора - принять PHP код и обработать его. Проще говоря, выполнить те последовательности действий, которые описаны в PHP коде. После обработки кода интерпретатор отдаёт результат серверу, а сервер отдаёт этот результат браузеру посетителя в виде HTML кода. При этом каждый раз перед тем, как интерпретатор сможет выполнить PHP скрипт, происходит компиляция этого PHP скрипта в байткод, который и обрабатывается. При этом компиляция кода отнимает некоторое количество ресурсов сервера, а если сайт состоит из большого количества PHP скриптов (в нашем случае это Joomla!), то это создаёт ощутимую нагрузку на сервер.

Для раскрутки сайта полезно организовать для него мультимедийное дополнение в виде голосового чата. Идеально для этого подходит TeamSpeak 3. В нём можно проводить голосовые конференции с большим количеством участников по темам, актуальным на Вашем сайте, блоге или форуме. К тому же там можно организовать и техподдержку для Ваших пользователей. TeamSpeak 3 состоит из двух частей: клиентской и серверной. Клиент устанавливается на компьютере пользователя, а серверная часть соответственно на Ваш сервер.

Я буду устанавливать тимспик на сервер под управлением операционной системы Debian. Так как операционная система в моём случае 32-битная, то сервер тимспик  буду ставить 32-битный. Но перед установкой нужно в фаерволе хостинг панели ISPConfig 3 открыть два порта. TCP порт 30033 и UDP порт 9987. Вписывать их нужно через запятую, после чего сохранить изменения.

Большинство серверов в сети имеют очень плохую защиту от атак и взлома. Причём это касается как шаред хостингов, так и выделенных частных серверов. А ведь интернет - чрезвычайно агрессивная среда, где тысячи ботов и толпы доморощенных хакеров - школьников будут постоянно пытаться сломать или атаковать Ваш сервер. Это я говорю, основываясь на личном опыте. Ведь постоянно в логах сервера вижу попытки перебора паролей, сканирование портов и другие подобные гадости. В ISPConfig 3, если Вы устанавливали её по официальному мануалу, уже имеется довольно хорошая защита от взлома, но вот перед банальным рефрешингом и тем более DoS атакой, любой неподготовленный сервер бессилен.

Давайте разберёмся подробнее, что грозит нашим домашним (и не только домашним) серверам в плане активных DoS атак после открытия серверов во всемирную паутину. К примеру, человек, имеющий широкополосный канал интернета заходит на Ваш сайт, расположенный на домашнем сервере, нажимает и удерживает на своей клавиатуре клавишу F5. В итоге на сервер идёт постоянный поток запросов, а сервер пытается их обработать. Всё это быстро пожирает ресурсы процессора и оперативной памяти - через несколько секунд сайт начинает очень медленно работать или вообще становится не доступным на всё время, пока  человек удерживает клавишу нажатой. Это и есть рефрешинг. Можно ещё назвать такую атаку малой DoS атакой. Как говорится, банально, но эффективно особенно для слабых серверов.

В phpMyAdmin можно зайти по двум адресам. Первый способ - это дописать к IP адресу сервера phpmyadmin - http://ip-сервера:8080/phpmyadmin. Второй путь - это дописать алиас к домену - http://домен.ru/phpmyadmin И это не очень хорошо, так как обязательно найдутся боты или люди, которые будут пытаться подбирать пароль. Если даже Вы используете сложные пароли, всё равно неприятно наблюдать в логах, что кто-то пытается незаконно получить доступ к базам данных, к тому же, скрипты для подбора паролей будут тратить ресурсы Вашего сервера.

Поэтому надо максимально затруднить это для злоумышленников, скрыв правильный адрес phpMyAdmin. Сделать это можно, заменив стандартный алиас на свой. Чтобы это выполнить, нужно соединиться с сервером по SSH и отредактировать конфигурационный файл. Для этого зайдём в терминал и выполняем команду:  

nano /etc/apache2/conf.d/phpmyadmin.conf

И меняем алиас на свой. После этого сохраняем изменения и далее, зайдя под учёткой админа в хостинг панель ISPConfig 3, в настройках – «Система» – «Конфиг интерфейса», в поле PHPMyAdmin URL, прописываем алиас, который Вы прописали в конфигурационном файле. И сохраняем изменения.