С нами просто и выгодно!

Звоните: +7 909 940-93-18

Наш блог. Категория Веб-серверы: установка, настройка и поддержка веб-серверов

Настройка сайта на Ubuntu server

Данная статья посвящена основам настройки и администрирования веб-сервера. В качестве платформы выбрана Ubuntu server как наиболее простая в настройке для начинающих. В статье рассмотрены следующие вопросы:

  1. Установка и базовая настройка Ubuntu server

  2. Базовая настройка ssh доступа

  3. Установка и базовая настройка apache

  4. Установка и базовая настройка nginx

  5. Установка и базоваянастройка MySQL

  6. Установка и базовая настройка tomcat

  7. Установка и базовая настройка postfix

  8. Установка и базовая настройка proftpd

  9. Базовая настройка cron и crontab для выполнения различных операций

Постановка задачи

Дано:

  • 1 или более ip адресов

  • 1 или более сайтов

  • 1 выделенный сервер

Требуется:

  • развернуть сайты

  • обеспечить доступ к ним для разработчиков (используя ftp)

  • обеспечить для руководителей проекта доступ через ssh для администрирования базы данных и добавления заданий в cron

  • реализовать доступ к ресурсам через nginx (использовать его в качестве frontend-а)

  • обеспечить интеграцию сервера сервлетов tomcat с nginx


1. Установка системы

Первоначально необходимо установить систему. Для этого нам потребуется установочный образ, который можно загрузить с официального сайта и сервер. Если сервера под рукой нет, но вы бы хотели освоить основы, то можно воспользоваться установкой на виртуальную машину (данный способ используется для иллюстрации в данной статье). Желательно, чтобы сервер во время установки имел доступ в интернет.

При использовании выделенного сервера нужно учитывать, что для работы сайта и повышения надежности системы в целом, желательно иметь отдельный накопитель под операционную систему (высокая надежность, среднее время доступа) и под веб-ресурсы (высокая надежность и минимальное время доступа).

После запуска нас встретит экран приветствия:

Выбираем русский язык.

Начинаем установку.

Выбираем расположение, обычно «Российская федерация».

Далее проходим меню настройки клавиатуры выбирая все пункты по умолчанию (если, конечно, у вас нет особенных клавиатур или предпочтений).

Выбираем имя компьютера.

Выбираем имя пользователя для root, обычно его не заполняют.

Выше имя пользователя и пароль (с подтверждением).

Если очень хотим спрятать личные данные, то можно зашифровать домашний каталог.

Выбираем часовой пояс.

После этого мы подошли к первому важному пункту: разметка диска. Как было отмечено выше, желательно, чтобы система и сервисная часть были на различных физических дисках: причин тут множество, среди них стоит особо отметить безопасность (систему тогда можно будет смонтировать в readonly) и надежность (в случае выхода из строя одного или нескольких дисков из-за износа — система продолжит работать, сохранится возможность восстановить данные используя текущую конфигурацию).

Итак, выбираем настройку разделов вручную.

Разметка разделов может быть выполнена следующим образом.

Записываем изменения на диск.

Далее идет процесс установки системы (желательно наличие интернета — тогда будут загружены и установлены все критически важные обновления).

Если вы используете прокси, то указываем его параметры (если нет — игнорируем).

Система тихо-мирно обновляется.

Способ обновления лучше всего выбрать «вручную» — ничего страшного от автоматического обновления Ubuntu не случится (это я сужу по своему опыту), но лучше не терять контроля над системой, да и надпись о необходимости перезагрузки тоже спокойствия не добавляет.

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

Во время установки указываем пароль для пользователя MySQL (по умолчанию — root).

Прописываем загрузочную запись для GRUB.

Установка завершена, можно перезагрузиться (не забываем извлечь загрузочный диск).

После перезагрузки окажемся перед экраном приветствия. Базовая настройка системы закончена и теперь мы приступим к настройке остальных её частей.


2. Настройка удаленного доступа

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

Поэтому рассмотрим вопрос с настройкой терминального доступа посредством ssh. Во время установки системы мы уже поставили необходимое приложение — осталось только подключиться. В стандартной поставке Ubuntu и большинства других Linux дистрибутивов ssh клиент уже установлен и потребуется лишь запустить терминал:

 
ssh server-name -l user-name
 

где server-name — это имя или ip адрес сервера, а user-name — имя пользователя, созданного при установке.

Для пользователей Windows есть замечательная программа Putty, которая не только обеспечит терминальный доступ к вашему серверу, но и позволит легко управлять подключениями, пробросом портов и многое другое.

Теперь рассмотрим вопрос безопасности. Можно (и даже нужно) ограничить количество ip адресов, с которых возможно подключение к серверу. Для этого необходимо отредактировать файл /etc/ssh/sshd_config и прописать там жестко биндинг на один ip адрес:

 
...
ListenAddress ваш-ip-адрес
...
 

после чего необходимо перезапустить сервис:

 
sudo /etc/init.d/ssh restart
 

После перезапуска сервиса служба ssh поднимется только на одном интерфейсе, и подключиться с других ip адресов к вашему серверу будет невозможно.

Среди прочих возможностей, которые нам потребуется — возможность проброса портов с сервера на локальную машину (все сервисы, кроме ssh и nginx, из соображений безопасности, будут биндиться только на localhost, а для их отладки часто будет необходимо настроить тоннель)

 
ssh -L локальный-порт:удаленный-хост:удаленный-порт user-name@server-name
 

где локальный-порт — целевой порт тоннеля на локальной машине, удаленный-хост — хост, с которого будет перенаправлен порт, удаленный-порт — порт удаленной машины, который будет биндится на локальный-порт.

Для демонстрации воможностей, подключимся к MySQL, который по умолчанию биндится на localhost (если мне не изменяет память):

 
ssh -L 3309:localhost:3306 user-name@server-name
 

После выполнения данной команды, мы сможем подключиться к базе данных каким-либо полноценным клиентом, например mysql workbench

Для создания тоннеля в Windows необходимо в настройках Putty в разделе connection => ssh => tunnels задать параметры тоннеля: