Налаштовуємо свій перший vds сервер в ролі веб-сервера

Так уже склалося, що останнім часом довелося досить часто міняти VDS провайдерів, і кожен раз доводиться заново налаштовувати систему, тому вирішив написати короткий конспект по налаштуванню. Все нижче описане коректно працює на ОС Linux Ubuntu server 12.04 LTS. У цій статті я опишу як встановити та провести первинну настройку nginx + apache2, eaccelerator, memcached, fure-ftpd, php, mysql, phpmyadmin а також панелі управління ігровими серверами - open game panel.

Почну з короткого опису деяких термінів.

VDS - він же VPS - Virtual Dedicaded (Private) сервер - віртуальна машина, сервер - потрібен він, коли звичайного хостингу мало, а виділений сервер дорого. На сучасному ринку провайдерів, які надають послуги з оренди VDS безліч, і у кожного є свої плюси і мінуси, але їх ми обговорювати не будемо.
Тип віртуалізації - кажучи простою мовою це те, яким способом організована віртуальна машина. В даний час найбільш поширені OpenVZ і XEN. Плюс OpenVZ - низька вартість, так як в цьому типі віртуалізації для всіх віртуальних машин запущених на апаратній сервері використовується спеціально модифіковане ядро ​​хост-системи. Мінус цього типу віртуалізації - неможливо змінювати параметри ядра ОС, також практично завжди присутня оверселлінг (про це пізніше). А для серйозних проектів краще використовувати XEN або KVM віртуалізацію - там гостьова ОС навіть і не знає що вона встановлена ​​на віртуальну машину, і з ОС можна робити практично все, чого душа забажає, особливо на XEN-HWM і KVM.
Оверселлінг - провайдери продають більше ресурсів, ніж є насправді. Працює це за рахунок того що клієнти рідко використовують ресурси за тарифом на 100 відсотків, але у недобросовісних провайдерів з підвищеним коефіцієнтом оверселлінг можуть спостерігатися проблеми, такі як вкрай повільна робота машини або невиконання скриптів через брак пам'яті. Повертаючись до типам віртуалізації на XEN і KVM оверселлінг практично неможливий технічно.

Вибір хостинг-провайдера

Отже, ви вирішили купити послугу VDS. Як же слід вибирати провайдера. Почати слід з географії - де територіально буде розташовуватися ваш сервер.

Налаштування сервера

Далі буду розповідати про різні фічі, які я налаштовував на своєму сервері, якісь можуть бути вам корисні. Операційна систем, яку я використовую - Ubuntu 12.04.1 LTS. Так як переважна більшість виконуються далі команд вимагають root привілеїв, а я людина ледача то всі дії я виконую під рутом. Залогінитися відразу під рутом зазвичай не можна, тому заходимо під користувачем з правами sudo і виконуємо команду sudo -s

збирати заново ядро

Якщо ви вибрали OpenVZ, то можете сміливо пропускати цю частину статті.
Дана процедура не дасть відчутного приросту продуктивності, і потрібна ця процедура тільки для саморозвитку і «потренуватися на майбутнє».
качаємо исходники останньої стабільної версії ядра з сайту kernel.org. На даний момент це версія 3.6.7

• Встановлюємо необхідні для компіляції пакети

• заходимо в папку з вихідними кодами і генеруємо конфігурацію ядра. У нашому випадку все буде проходити автоматично - в ядро ​​будуть включені тільки ті модулі, які необхідні поточному залозу. Якщо ж вам хочеться вручну конфігурувати ядро, то прошу гуглити за запитом make config або make menugonfig.

• запускаємо компіляцію ядра - процес не швидкий йде від 15 хвилин до декількох годин.

• піднімаємося на каталог вище і встановлюємо пакети

• Перезавантажуємося і перевіряємо, що ядро ​​стало.

• Ось і все, у вашій системі нове ядро.

Міняємо часовий пояс і ім'я ПК

Якщо ви встановлюєте Ubuntu на виділений сервер самі, то мовні та географічні параметри системи ви задаєте в ході установки, але у випадку з VDS у провайдера є вже готовий образ системи, який він розгортає на ваш сервер. І всім нам приємніше бачити правильне для нашого часового поясу час на сервері.
• Отже, встановимо часовий пояс, для цього в консолі виконаємо команду

• З'явиться псевдографічний інтерфейс в якому ми виберемо наше розташування.
• Якщо раптом (жодного разу ще такого не бачив) є розбіжності по датевремені, то виконаємо наступну команду, в яку підставимо поточні дату і час

• Щоб змінити ім'я сервера, відкриємо файл / etc / hostname і замінимо вміст на бажане ім'я сервера.

Встановлюємо nginx c бекенда apache2, PHP, MySQL, phpmyadmin

У цій частині статті ми встановимо і налаштуємо веб-сервер, розрахований на велику кількість з'єднань.

• Спочатку встановимо стандартний «дитячий» набір пакетів для веб сервера.

• Включаємо модулі apache2

• Малюємо дефолтний конфіг апача. Для цього відкриваємо / etc / apache2 / sites-available / default стираємо в цьому файлі всі і пишемо наступне:

• Встановлюємо nginx і apache2-mod-rpaf

• Далі налаштуємо nginx, для цього відкриваємо файл /usr/local/etc/nginx/nginx.conf і замінюємо вміст наступним

• встановлюємо memcached, ніяких додаткових налаштувань для нього не вимагаючи

• Створюємо папку для кешу, і даємо на неї права

• Налаштовуємо php для роботи з eaccelerator, для цього відкриємо файл /etc/php5/apache2/php.ini і допишемо зверху

• Перезапускаємо сервіси, переконавшись що в / home / www / імя_сайта лежить сайт

Установка FTP сервера pure-ftpd з підтримкою MySQL

ФТП сервер в нагоді нам для простого і швидкого і зручного перенесення інформації з сервера і на сервер.
• Встановлюємо pure-ftpd з підтримкою mysql

• Створюємо групу для користувачів ftp і користувача в ній - це робиться для того щоб згодом було зручніше стежити за тим, що відбувається на вашому сервері.

• Створимо базу даних в MySQL для pure-ftpd. Це можна зробити і через phpmyadmin, але великим і могутнім копіпастом це швидше зробити в консолі

• Створимо таблицю, в якій будуть зберігатися облікові записи фтп.

• Тепер зробимо так, щоб домашня директорія користувача автоматично створювалася якщо вона не існує

• Наступна команда не дасть їм доступ до тек, які вище ніж їх домашній каталог.

• перезапустити сервіс щоб застосувати настройки

• Тепер створимо користувача www-ftp з GID і UID 4002, домашньою директорією / home / www лімітами швидкості загрузкіотдачі по одному мегабайту в секунду і без обмежень по займаному дискового простору. Наведу приклад з використанням командного рядка, ви ж можете використовувати і «виконати SQL-запит» в phpmyadmin, або навіть скористатися «додати рядки» в phpmyadmin - але в цьому випадку потрібно не прогавити те, що пароль в БД зберігатися у вигляді його md5 хеш-кодування , і в поле password вибрати «Функція» md5

• Встановлюємо пакет openssl, якщо він не встановлений і генеруємо сертифікат.

• Відповідаємо на питання - ці дані будуть відображатися в створеному сертифікаті.
• Встановлюємо права доступу на сертифікат і перезапускаємо pure-ftpd

• От і все. Пам'ятайте, що для того щоб дані шифрувалися необхідно включити tls шифрування з боку клієнта, і далеко не всі фтп клієнти підтримують його.

Установка комплексу управління ігровими серверами - Open Game Panel

• Якщо система x64, то додатково встановлюємо ia32-libs

• Скачиваем сам агент

• Встановлюємо. Увага - я попередньо створив користувача в системі, включив його в групи root і sudo і створив йому домашній каталог - це все необхідно для того щоб агент коректно працював.

• У нас будуть питати ім'я користувача під яким буде крутитися сервіс - потрібно вказати того, про якого я говорив в попередньому пункті, його пароль, директорію в якій будуть знаходитися виконувані файли (/ home / ім'я користувача / OGP) і попросять ввести ключ агента - це не пароль користувача, а ключ управління агентом, він нам стане в нагоді пізніше, і ще нас попросять погодитися з правилами політики Steam.
• Після установки залогініваемся під створеним користувачем і запускаємо

• Нам повинні написати що все в порядку, процес запущений і слухає на 12679 порту.
• Натискаємо ctrl + c, логіном під рутом і прописуємо - це потрібно для того щоб сервіс стартував при запуску ситеми

• Якщо серверів (виділених або віртуальних) кілька, то агент необхідно встановити на кожному
• Тепер встановимо веб-інтерфейс від OGP, завантажуємо архів і розпаковуємо