Настройка выделенного виртуального веб-сервера

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
  • 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/ named stop
chmod 644 /etc/init.d/ named

Команда chmod удаляет разрешение на выполнение из сценария, останавливая его запуск при запуске.

Отключить SpamAssassin

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

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

Отключить xinetd

В процессе xinetd находится ряд других процессов, ни один из которых не полезен для обычного веб-сервера.

/etc/init.d/xinetd stop
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 stop

Вы можете отключить его запуск при запуске, выполнив следующую команду:

chmod 644 /etc/init.d/psa

Обратите внимание: если вы отключите его, вы не сможете запустить его вручную, не вернув права доступа к файлам (chmod u + x).

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

Включить кеш запросов

Откройте файл /etc/my.cnf и добавьте следующие строки в раздел [mysqld] следующим образом:

[mysqld]
запрос-кеш-тип = 1
размер кэша запроса = 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
  • ионный куб-загрузчик
  • json
  • imap
  • ldap
  • ncurses

Todo: Добавьте сюда больше информации.

Кэш кода операции 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 = "myusername"
xcache.admin.pass = "putanmd5hashhere"
[xcache]
; Измените xcache.size, чтобы настроить размер кеша опкодов
xcache.size = 16 МБ
xcache.shm_scheme = "mmap"
xcache.count = 1
xcache.slots = 8 КБ
xcache.ttl = 0
xcache.gc_interval = 0
; Измените xcache.var_size, чтобы настроить размер кеша переменных
xcache.var_size = 1M
xcache.var_count = 1
xcache.var_slots = 8 КБ
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 = Выкл.

Todo: нужно немного расширить это и добавить ссылку на xcache в справочниках.

Резервные копии

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

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

Обычно я начинаю с создания каталога / backups с каталогом / backups / files под ним. Вы можете изменить эти пути, если хотите.

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 {} \;

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

Сделайте скрипт исполняемым, выполнив следующую команду:

чмод у+с /баккупс/бачкуп.ш

Затем вам нужно назначить его для автоматического запуска cron. Убедитесь, что вы используете учетную запись, у которой есть доступ к каталогу резервных копий.

crontab -e

Добавьте в crontab следующую строку:

1       1       *       *       *       /баккупс/бачкуп.ш

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

Удаленная синхронизация резервных копий с помощью Rsync

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

Вы можете проверить это, запустив эту команду на машине Linux или Mac в другом месте (у меня дома есть сервер Linux, и я запускаю это здесь)

rsync -a [email protected]: / backups / files / * / offsitebackups /

В первый раз это займет некоторое время, но в конце на вашем локальном компьютере должна быть копия каталога файлов в каталоге / offsitebackups /. (Обязательно создайте этот каталог перед запуском скрипта)

Вы можете запланировать это, добавив его в строку crontab:

crontab -e

Добавьте следующую строку, которая будет запускать rsync каждый час на отметке 45 минут. Вы заметите, что здесь используется полный путь к rsync.

45 * * * * / usr / bin / rsync -a [email protected]: / backups / files / * / offsitebackups /

Вы можете запланировать его запуск в другое время или только один раз в день. Это действительно ваше дело.

Обратите внимание, что существует множество утилит, которые позволят вам выполнять синхронизацию через ssh или ftp. Вам не нужно использовать rsync.

Безопасность

Первое, что вам нужно сделать, это убедиться, что у вас есть учетная запись обычного пользователя для использования через ssh, и убедиться, что вы можете использовать su для переключения на root. Разрешать прямой вход для root через ssh - очень плохая идея.

Отключить вход в систему через SSH

Отредактируйте файл / etc / ssh / sshd_config и найдите следующую строку:

#PermitRootLogin да

Измените эту строку, чтобы она выглядела так:

PermitRootLogin нет

Прежде чем вносить это изменение, убедитесь, что у вас есть учетная запись обычного пользователя и вы можете получить root-права с помощью su, иначе вы можете заблокировать себя.

Отключить SSH версии 1

На самом деле нет причин использовать что-либо, кроме SSH версии 2, поскольку он более безопасен, чем предыдущие версии. Отредактируйте файл / etc / ssh / sshd_config и найдите следующий раздел:

#Protocol 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


Конфиденциальность и безопасность - Самые популярные статьи

Как убедиться в безопасности расширения Chrome перед его установкой

Конфиденциальность и безопасность Apr 3, 2025

Большая часть мощности и гибкости Chrome обеспечивается огромной экосистемой расширений. Проблема в ..


10 функций, доступных только в Windows 10 Enterprise (и для образовательных учреждений)

Конфиденциальность и безопасность Jul 12, 2025

Вы можете перейти на профессиональную версию Windows 10 чтобы получить расширенные функции, та..


Как поделиться своим iPhone без слежки за людьми

Конфиденциальность и безопасность Apr 26, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Телефоны частные, полны личных данных и сообщений. Управляемый доступ поз..


Google теперь блокирует вредоносное ПО в результатах поиска, рекламе и Chrome

Конфиденциальность и безопасность Feb 27, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Мы уже были в последнее время много исследует вредоносное ПО и вредон..


Шифрование WPA2 вашего Wi-Fi можно взломать в автономном режиме: вот как

Конфиденциальность и безопасность Jul 12, 2025

Когда дело доходит до защиты вашей сети Wi-Fi, мы всегда рекомендуем шифрование WPA2-PSK . Это еди..


Как использовать доверенные контакты Facebook для получения доступа к заблокированной учетной записи

Конфиденциальность и безопасность Jun 4, 2025

Онлайн-сервисы все больше заботятся о безопасности, двухфакторная аутентификация теперь �..


Может ли архиватор KGB быть лучшим доступным инструментом сжатия? Или просто самый медленный?

Конфиденциальность и безопасность Jan 31, 2025

Сжатие файлов настолько распространено, что теперь оно встроено во многие операционные системы в �..


Как попасть в вашу сеть (DD-WRT)

Конфиденциальность и безопасность Sep 11, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Вы когда-нибудь хотели, чтобы ваш маршрутизатор «стучал в общежитии», что�..


Категории