Налаштування виділеного віртуального веб-сервера

May 22, 2025
Конфіденційність та безпека
НЕЗАГОТОВЛЕНИЙ ЗМІСТ

Коли ви отримуєте виділений віртуальний сервер для запуску вашого веб-сайту, велика ймовірність того, що він налаштований для всіх, а не налаштований для максимізації продуктивності роботи веб-сайту.

Зміст

[ сховати ]

  • 1 Огляд
  • 2 Конфігурація Linux
    • 2.1 Вимкнути DNS
    • 2.2 Вимкнути SpamAssassin
    • 2.3 Вимкнути xinetd
    • 2.4 Обмеження використання пам'яті Plesk
    • 2.5 Вимкнути або вимкнути Plesk (необов’язково)
  • 3 Конфігурація MySQL
    • 3.1 Увімкнути кеш запитів
    • 3.2 Вимкнути TCP / IP
  • 4 Конфігурація Apache
  • 5 Конфігурація PHP
    • 5.1 Видалити непотрібні модулі PHP
    • 5.2 Кеш-код PHP Opcode
  • 6 Резервні копії
    • 6.1 Створення сценарію автоматичного резервного копіювання
    • 6.2 Синхронізація резервних копій за межами сайту за допомогою Rsync
  • 7 Безпека
    • 7.1 Вимкнути корінний вхід через SSH
    • 7.2 Вимкніть SSH версії 1
    • 7.3 Перезапустіть сервер SSH
    • 7.4 Перевірте наявність відкритих портів
    • 7.5 Налаштування брандмауера
  • 8 Див. Також
  • 9 Список літератури

Огляд

Існує ряд проблемних областей, де ми хочемо максимізувати ефективність:

  • Конфігурація Linux
    Зазвичай працюють сервіси, які не потрібні, марно витрачаючи пам’ять, яку можна використовувати для більшої кількості з’єднань.
  • Конфігурація MySQL
    Часто налаштування за замовчуванням базуються на невеликому сервері, ми можемо додати кілька ключових змін, щоб значно збільшити продуктивність.
  • Конфігурація Apache
    За замовчуванням більшість провайдерів хостингу встановлюють apache майже з кожним встановленим модулем. Немає причин завантажувати модулі, якщо ви ніколи не збираєтесь їх використовувати.
  • Конфігурація PHP
    Конфігурація PHP за замовчуванням так само роздута, зазвичай встановлюється маса непотрібних додаткових модулів.
  • Кеш-код коду PHP
    Замість того, щоб дозволяти PHP перекомпілювати сценарії кожного разу, кеш-код операційного коду буде кешувати скомпільовані сценарії в пам'яті для значного підвищення продуктивності.
  • Резервні копії
    Напевно, слід налаштувати деякі автоматизовані резервні копії, оскільки ваш хостинг-провайдер не збирається робити це за вас.
  • Безпека
    Звичайно, Linux за замовчуванням достатньо безпечний, але зазвичай є кілька кричущих проблем із безпекою, які ви можете виправити за допомогою декількох швидких налаштувань.

Конфігурація Linux

Ви можете виконати досить багато налаштувань, які будуть дещо відрізнятися залежно від використовуваного вами сервера. Ці налаштування призначені для сервера під управлінням CentOS, але вони повинні працювати для більшості серверів DV.

Вимкніть DNS

Якщо ваш хостинг-провайдер обробляє DNS для вашого домену (ймовірно), ви можете відключити роботу DNS-служби.

відключити dns - -
/etc/init.d/названий стоп
chmod 644 /etc/init.d/названий

Команда chmod видаляє дозвіл на виконання зі сценарію, зупиняючи його запуск під час запуску.

Вимкніть SpamAssassin

Якщо ви не використовуєте облікові записи електронної пошти на самому сервері, вам не слід турбуватися про запуск антиспамових інструментів. (Також вам слід перевірити Google Apps, набагато краще рішення електронної пошти)

/etc/init.d/psa-spamassassin stop
chmod 644 /etc/init.d/psa-spamassassin

Вимкнути xinetd

Процес xinetd містить низку інших процесів, жоден з яких не є корисним для типового веб-сервера.

/etc/init.d/xinetd зупинка
chmod 644 /etc/init.d/xinetd

Обмежте використання пам'яті Plesk

Якщо ви використовуєте панель plesk, ви можете змусити її використовувати менше пам'яті, додавши файл параметрів.

vi /usr/local/psa/admin/conf/httpsd.custom.include

Додайте до файлу такі рядки:

MinSpareServers 1
MaxSpareServers 1
StartServers 1
MaxClients 5

Зверніть увагу, що, як відомо, цей параметр працює на серверах MediaTemple DV, але не перевірявся на жодному іншому. (Побачити Список літератури )

Вимкнути або вимкнути Plesk (необов’язково)

Якщо ви використовуєте Plesk лише раз на рік, то зовсім мало причин залишати його запущеним. Зверніть увагу, що цей крок є зовсім необов’язковим та дещо вдосконаленим.

Запустіть таку команду, щоб вимкнути plesk:

/etc/init.d/psa зупинка

Ви можете вимкнути його запуск під час запуску, виконавши таку команду:

chmod 644 /etc/init.d/psa

Зверніть увагу, що якщо ви вимкнете його, ви не зможете запустити його вручну, не змінивши дозволи на файл назад (chmod u + x).

Конфігурація MySQL

Увімкнути кеш запитів

Відкрийте файл /etc/my.cnf і додайте такі рядки у розділі [mysqld], як це:

[mysqld]
query-cache-type = 1
query-cache-size = 8M

Ви можете додати більше пам’яті в кеш запитів, якщо хочете, але не використовуйте занадто багато.

Вимкніть TCP / IP

Несподівана кількість хостів за замовчуванням забезпечує доступ до MySQL на TCP / IP, що не має сенсу для веб-сайту. Ви можете зрозуміти, чи слухає mysql TCP / IP, виконавши таку команду:

netstat -an | grep 3306

Щоб вимкнути, додайте наступний рядок у файл /etc/my.cnf:

пропустити мережі

Конфігурація Apache

Відкрийте файл httpd.conf, який часто можна знайти в /etc/httpd/conf/httpd.conf

Знайдіть рядок, який виглядає так:

Час очікування 120

І змініть це на таке:

Час очікування 20

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

StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 100
MaxClients 100
MaxRequestsPerChild 4000

Конфігурація PHP

Однією з речей, про яку слід пам’ятати під час налаштування сервера на платформі PHP, є те, що кожен окремий потік apache завантажує PHP в окремому місці в пам’яті. Це означає, що якщо невикористаний модуль додає до PHP 256 кб пам’яті, через 40 потоків Apache ви витрачаєте 10 МБ пам’яті.

Видаліть непотрібні модулі PHP

Вам потрібно буде знайти ваш файл php.ini, який зазвичай знаходиться за адресою /etc/php.ini (Зверніть увагу, що в деяких дистрибутивах буде каталог /etc/php.d/ з кількістю файлів .ini, по одному для кожного модуля.

Прокоментуйте будь-які рядки loadmodule за допомогою цих модулів:

  • odbc
  • snmp
  • pdo
  • odbc pdo
  • mysqli
  • ioncube-loader
  • json
  • imap
  • ldap
  • ncurses

Тодо: Додайте більше інформації тут.

Кеш-код коду PHP

Ви можете використовувати низку кеш-кодів операційних кодів, включаючи APC, eAccelerator та Xcache, останній - це мої особисті переваги завдяки стабільності.

Завантажте xcache і витягніть його в каталог, а потім виконайте наступні команди з вихідного каталогу xcache:

phpize
./configure --enable-xcache
зробити
зробити встановлення

Відкрийте файл php.ini та додайте новий розділ для xcache. Вам потрібно буде налаштувати шляхи, якщо ваші php-модулі завантажені звідкись.

vi /etc/php.ini

Додайте до файлу такий розділ:

[xcache-common]
zend_extension = /usr/lib/php/modules/xcache.so
[xcache.admin]
xcache.admin.user = "ім'я користувача"
xcache.admin.pass = "putanmd5hashhere"
[xcache]
; Змініть xcache.size, щоб налаштувати розмір кешу операційного коду
xcache.size = 16M
xcache.shm_scheme = "mmap"
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
; Змініть xcache.var_size, щоб налаштувати розмір кешу змінних
xcache.var_size = 1 млн
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Вимкнено
xcache.readonly_protection = Увімкнено
xcache.mmap_path = "/ tmp / xcache"
xcache.coredump_directory = ""
xcache.cacher = Увімкнено
xcache.stat = Увімкнено
xcache.optimizer = Вимкнено

Тодо: Потрібно трохи розширити це і вказати посилання на xcache у посиланнях.

Резервні копії

Існує дуже мало важливого, ніж автоматичне резервне копіювання вашого веб-сайту. Можливо, ви зможете отримати резервні копії знімків від свого провайдера хостингу, які також дуже корисні, але я вважаю за краще також мати автоматичне резервне копіювання.

Створіть автоматизований сценарій резервного копіювання

Зазвичай я починаю зі створення каталогу / резервних копій, під яким знаходиться каталог / резервні копії / файли. Ви можете налаштувати ці шляхи, якщо хочете.

mkdir -p / резервні копії / файли

Тепер створіть сценарій backup.sh всередині каталогу резервних копій:

vi /backups/backup.sh

Додайте до файлу наступне, відкоригувавши шляхи та пароль mysqldump за необхідності:

#! / bin / sh

THEDATE = `дата +% d% m% y% H% M`

mysqldump -uadmin -pPASSWORD DATABASENAME> /backups/files/dbbackup$THEDATE.bak

tar -cf /backups/files/sitebackup$THEDATE.tar / var / www / vhosts / my-website-path / httpdocs
gzip /backups/files/sitebackup$THEDATE.tar

знайти / резервні копії / файли / сайт * -mtime +5 -exec rm {} \;
знайти / резервні копії / файли / db * -mtime +5 -exec rm {} \;

Сценарій спочатку створить змінну дати, тому всі файли матимуть однакові імена для однієї резервної копії, а потім скидає базу даних, розігрує веб-файли та створює їх у стилі gzips. Команди пошуку використовуються для видалення будь-яких файлів, старших за 5 днів, оскільки ви не хочете, щоб на вашому диску закінчилося місце.

Зробіть сценарій виконуваним, виконавши таку команду:

chmod u + x /backups/backup.sh

Далі вам потрібно буде призначити його для автоматичного запуску за допомогою cron. Переконайтеся, що ви використовуєте обліковий запис, який має доступ до каталогу резервних копій.

кронтаб -е

Додайте наступний рядок до crontab:

1       1       *       *       *       /backups/backup.sh

Ви можете протестувати сценарій заздалегідь, запустивши його під час входу в обліковий запис користувача. (Я зазвичай запускаю резервні копії як root)

Синхронізація резервних копій за межами сайту за допомогою Rsync

Тепер, коли у вас автоматизовані резервні копії вашого сервера, ви можете синхронізувати їх де-небудь ще за допомогою утиліти rsync. Ви захочете прочитати цю статтю про те, як налаштувати ключі ssh для автоматичного входу: Додайте загальнодоступний ключ SSH на віддалений сервер за допомогою однієї команди

Ви можете перевірити це, запустивши цю команду на машині Linux або Mac в іншому місці (у мене вдома є сервер Linux, де я це запускаю)

rsync -a [email protected]: / резервні копії / файли / * / offsitebackups /

Це займе досить багато часу для запуску з першого разу, але в кінці ваш локальний комп'ютер повинен мати копію каталогу файлів у каталозі / offsitebackups /. (Обов’язково створіть цей каталог перед запуском сценарію)

Ви можете запланувати це, додавши його до рядка crontab:

кронтаб -е

Додайте наступний рядок, який буде запускати rsync щогодини з позначкою 45 хвилин. Ви помітите, що ми використовуємо повний шлях до rsync тут.

45 * * * * / usr / bin / rsync -a [email protected]: / резервні копії / файли / * / offsitebackups /

Ви можете запланувати його роботу в інший час або лише один раз на день. Це насправді залежить від вас.

Зверніть увагу, що існує безліч утиліт, які дозволять вам синхронізувати через ssh або ftp. Вам не потрібно використовувати rsync.

Безпека

Перше, що ви хочете зробити, це переконатися, що у вас є звичайний обліковий запис користувача для використання через ssh, і переконайтесь, що ви можете використовувати su для переходу на root. Дуже погана ідея дозволяти прямий вхід для root через ssh.

Вимкнути корінний вхід через SSH

Відредагуйте файл / etc / ssh / sshd_config і знайдіть такий рядок:

#PermitRootLogin так

Змініть цей рядок так, щоб виглядати так:

No PermitRootLogin

Переконайтеся, що у вас є звичайний обліковий запис користувача, і ви можете виконувати права root, перш ніж вносити зміни, інакше ви можете заблокувати себе.

Вимкніть SSH версії 1

Насправді немає причин використовувати щось інше, ніж SSH версії 2, оскільки це більш безпечно, ніж попередні версії. Відредагуйте файл / etc / ssh / sshd_config і знайдіть такий розділ:

# Протокол 2,1
Протокол 2

Переконайтеся, що ви використовуєте лише протокол 2, як показано.

Перезапустіть сервер SSH

Тепер вам потрібно буде перезапустити сервер SSH, щоб це набуло чинності.

/etc/init.d/sshd перезапустити

Перевірте наявність відкритих портів

Ви можете використати таку команду, щоб побачити, які порти прослуховує сервер:

netstat -an | grep СЛУХАЙ

Насправді у вас не повинно бути нічого прослуховування, крім портів 22, 80 і, можливо, 8443 для plesk.

Налаштуйте брандмауер

Ви можете додатково налаштувати брандмауер iptables, щоб блокувати більше з'єднань. Наприклад, я зазвичай блокую доступ до будь-яких інших портів, крім моєї робочої мережі. Якщо у вас є динамічна IP-адреса, ви хочете уникнути цієї опції.

Якщо ви вже виконували всі кроки, наведені в цьому посібнику, можливо, не потрібно також додавати брандмауер до суміші, але добре розуміти ваші варіанти.

Дивіться також

  • Використання Iptables в Linux

Список літератури

Setting Up Virtual Hosts For The Apache Web Server - Tutorial

WHM Dedicated Server Configuration 3

Setting Up A Dedicated Server For A Multiplayer Game In Unity

WHM Bangla Tutorial Dedicated Server Configuration 2

Valheim Dedicated Server Setup | Host A FREE Private Server

How To Deploy A Cloud Dedicated Server With Free InterWorx - Host Unlimited Accounts

Set Up A Simple Web Server At Home In Under 10 Minutes Using Windows And WAMP

How To Setup A Cloud Dedicated Server W/InterWorx & Add Your Website, Name Servers, & Hostname SSL


Конфіденційність та безпека - Найпопулярніші статті

Як увімкнути двофакторну автентифікацію та захистити свій дзвінок

Конфіденційність та безпека Dec 20, 2024

НЕЗАГОТОВЛЕНИЙ ЗМІСТ Скретч Діно Наступні звітів поганих акторів, які отрим�..


Справжньою проблемою безпеки Android є виробники

Конфіденційність та безпека Feb 11, 2025

НЕЗАГОТОВЛЕНИЙ ЗМІСТ Кемерон Саммерсон Якщо у вас телефон Google Pixel, телефон не захищен..


Не використовуйте VPN Onavo VPN від Facebook: він призначений для шпигунства за вами

Конфіденційність та безпека Jun 18, 2025

Можливо, ви нещодавно бачили нову кнопку в мобільному додатку Facebook: у меню Налаштування параметр «�..


Як встановити підключення Ethernet як вимірюване в Windows 8 і 10

Конфіденційність та безпека Jul 5, 2025

НЕЗАГОТОВЛЕНИЙ ЗМІСТ Обидва Windows 8 і 10 дозволяють встановлювати певні типи з'єднань як до..


Як зробити так, щоб ігри “Ігри для Windows LIVE” відтворювались у Windows 10

Конфіденційність та безпека Jul 5, 2025

Багато старих ігор для ПК, здається, чудово працюють у Windows 10, але ігри використовують Невдала п..


Як видалити історію додатків у Windows 8

Конфіденційність та безпека Apr 18, 2025

НЕЗАГОТОВЛЕНИЙ ЗМІСТ Коли ви закриваєте програму Metro у Windows 8, вона швидше зупиняється, ніж повніст..


Дізнайтеся, що таке OpenSSH на вашому ПК з Linux

Конфіденційність та безпека Sep 20, 2025

НЕЗАГОТОВЛЕНИЙ ЗМІСТ Ми неодноразово вихваляли достоїнства SSH як щодо безпеки, так і для віддален..


VirtualBox 4.0 Rocks Extensions і спрощений графічний інтерфейс

Конфіденційність та безпека Dec 23, 2024

НЕЗАГОТОВЛЕНИЙ ЗМІСТ Якщо ви шанувальник VirtualBox, ви точно захочете взяти нове оновлення 4.0; він пост..


Категорії