Poprawianie dedykowanego wirtualnego serwera internetowego

May 22, 2025
Prywatność i ochrona
TREŚĆ NIENARUSZONA

Kiedy otrzymasz dedykowany serwer wirtualny do obsługi witryny internetowej, istnieje duże prawdopodobieństwo, że jest on skonfigurowany dla wszystkich i nie jest dostosowany do maksymalizacji wydajności działania witryny.

Zawartość

[ ukryć ]

  • 1. Przegląd
  • 2 Konfiguracja Linuksa
    • 2.1 Wyłącz DNS
    • 2.2 Wyłącz SpamAssassin
    • 2.3 Wyłącz xinetd
    • 2.4 Ograniczenie wykorzystania pamięci Plesk
    • 2.5 Wyłącz lub wyłącz Plesk (opcjonalnie)
  • 3 Konfiguracja MySQL
    • 3.1 Włącz pamięć podręczną zapytań
    • 3.2 Wyłącz TCP / IP
  • 4 Konfiguracja Apache
  • 5 Konfiguracja PHP
    • 5.1 Usuń niepotrzebne moduły PHP
    • 5.2 Pamięć podręczna kodu operacyjnego PHP
  • 6 Kopie zapasowe
    • 6.1 Utwórz automatyczny skrypt kopii zapasowej
    • 6.2 Synchronizuj kopie zapasowe poza siedzibą za pomocą Rsync
  • 7 Bezpieczeństwo
    • 7.1 Wyłącz logowanie roota przez SSH
    • 7.2 Wyłącz SSH w wersji 1
    • 7.3 Uruchom ponownie serwer SSH
    • 7.4 Sprawdź otwarte porty
    • 7.5 Skonfiguruj zaporę
  • 8 Zobacz też
  • 9 Odnośniki

Przegląd

Istnieje wiele problematycznych obszarów, w których chcemy zmaksymalizować wydajność:

  • Konfiguracja Linuksa
    Zwykle działają usługi, które nie muszą być, marnując pamięć, która może być wykorzystana do większej liczby połączeń.
  • Konfiguracja MySQL
    Często ustawienia domyślne są oparte na małym serwerze, możemy dodać kilka kluczowych zmian, aby znacznie zwiększyć wydajność.
  • Konfiguracja Apache
    Domyślnie większość dostawców hostingu instaluje Apache z prawie każdym zainstalowanym modułem. Nie ma powodu, aby ładować moduły, jeśli nie zamierzasz ich nigdy używać.
  • Konfiguracja PHP
    Domyślna konfiguracja PHP jest podobnie rozdęta, zwykle jest zainstalowanych mnóstwo niepotrzebnych dodatkowych modułów.
  • Pamięć podręczna kodu operacyjnego PHP
    Zamiast zezwalać PHP na rekompilację skryptów za każdym razem, pamięć podręczna kodu operacji będzie buforować skompilowane skrypty w pamięci, aby znacznie zwiększyć wydajność.
  • Kopie zapasowe
    Powinien prawdopodobnie skonfigurować automatyczne tworzenie kopii zapasowych, ponieważ Twój dostawca hostingu nie zrobi tego za Ciebie.
  • Bezpieczeństwo
    Jasne, Linux jest domyślnie wystarczająco bezpieczny, ale zwykle występują rażące problemy z bezpieczeństwem, które można naprawić za pomocą kilku szybkich ustawień.

Konfiguracja Linuksa

Istnieje wiele poprawek, które możesz wprowadzić, które będą się nieznacznie różnić w zależności od używanego serwera. Te poprawki dotyczą serwera z systemem CentOS, ale powinny działać na większości serwerów DV.

Wyłącz DNS

Jeśli Twój dostawca usług hostingowych obsługuje DNS Twojej domeny (prawdopodobnie), możesz wyłączyć usługę DNS.

wyłącz dns
/etc/init.d/named stop
chmod 644 /etc/init.d/named

Polecenie chmod usuwa uprawnienie do wykonywania skryptu, uniemożliwiając mu uruchamianie przy starcie.

Wyłącz SpamAssassin

Jeśli nie używasz kont e-mail na swoim serwerze, nie powinieneś zawracać sobie głowy uruchamianiem narzędzi antyspamowych. (Powinieneś także sprawdzić Google Apps, znacznie lepsze rozwiązanie pocztowe)

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

Wyłącz xinetd

Proces xinetd przechowuje szereg innych procesów, z których żaden nie jest przydatny dla typowego serwera WWW.

/etc/init.d/xinetd stop
chmod 644 /etc/init.d/xinetd

Ogranicz użycie pamięci Plesk

Jeśli używasz panelu plesk, możesz zmusić go do zużywania mniejszej ilości pamięci, dodając plik opcji.

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

Dodaj następujące wiersze do pliku:

MinSpareServers 1
MaxSpareServers 1
StartServers 1
MaxClients 5

Zauważ, że ta opcja działa na serwerach MediaTemple DV, ale nie została sprawdzona na żadnych innych. (Widzieć Bibliografia )

Wyłącz lub wyłącz Plesk (opcjonalnie)

Jeśli używasz Pleska tylko raz w roku, nie ma powodu, aby w ogóle go wyłączać. Zwróć uwagę, że ten krok jest całkowicie opcjonalny i nieco bardziej zaawansowany.

Uruchom następujące polecenie, aby wyłączyć plesk:

/etc/init.d/psa stop

Możesz wyłączyć jego uruchamianie podczas uruchamiania, uruchamiając następujące polecenie:

chmod 644 /etc/init.d/psa

Zauważ, że jeśli go wyłączysz, nie możesz go uruchomić ręcznie bez zmiany uprawnień do pliku z powrotem (chmod u + x).

Konfiguracja MySQL

Włącz pamięć podręczną zapytań

Otwórz plik /etc/my.cnf i dodaj następujące wiersze w sekcji [mysqld] w następujący sposób:

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

Jeśli chcesz, możesz dodać więcej pamięci do pamięci podręcznej zapytań, ale nie używaj jej zbyt dużo.

Wyłącz TCP / IP

Zaskakująca liczba hostów domyślnie umożliwia dostęp do MySQL przez TCP / IP, co nie ma sensu w przypadku strony internetowej. Możesz dowiedzieć się, czy mysql nasłuchuje na TCP / IP, uruchamiając następujące polecenie:

netstat -an | grep 3306

Aby wyłączyć, dodaj następujący wiersz do pliku /etc/my.cnf:

pomiń sieci

Konfiguracja Apache

Otwórz swój plik httpd.conf, często znajdujący się w /etc/httpd/conf/httpd.conf

Znajdź linię, która wygląda następująco:

Limit czasu 120

I zmień to na to:

Limit czasu 20

Teraz znajdź sekcję zawierającą te linie i dostosuj się do czegoś podobnego:

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

Konfiguracja PHP

Jedną z rzeczy, o których należy pamiętać podczas modyfikowania serwera na platformie PHP, jest to, że każdy pojedynczy wątek Apache będzie ładował PHP w oddzielnym miejscu w pamięci. Oznacza to, że jeśli nieużywany moduł dodaje 256k pamięci do PHP, w 40 wątkach Apache marnujesz 10 MB pamięci.

Usuń niepotrzebne moduły PHP

Będziesz musiał zlokalizować swój plik php.ini, który zwykle znajduje się w /etc/php.ini (Zauważ, że w niektórych dystrybucjach będzie katalog /etc/php.d/ z wieloma plikami .ini, po jednym na każdy moduł.

Zakomentuj wszystkie linie loadmodule z tymi modułami:

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

Do zrobienia: dodaj więcej informacji tutaj.

Pamięć podręczna kodu operacyjnego PHP

Istnieje wiele pamięci podręcznych kodów operacyjnych, z których możesz korzystać, w tym APC, eAccelerator i Xcache, z których ostatnia jest moim osobistym preferencją ze względu na stabilność.

Pobierz xcache i wyodrębnij go do katalogu, a następnie uruchom następujące polecenia z katalogu źródłowego xcache:

phpize
./configure --enable-xcache
robić
dokonać instalacji

Otwórz plik php.ini i dodaj nową sekcję dla xcache. Będziesz musiał dostosować ścieżki, jeśli moduły php są ładowane z innego miejsca.

vi /etc/php.ini

Dodaj następującą sekcję do pliku:

[xcache-common]
zend_extension = /usr/lib/php/modules/xcache.so
[xcache.admin]
xcache.admin.user = "myusername"
xcache.admin.pass = "putanmd5hashhere"
[xcache]
; Zmień xcache.size, aby dostosować rozmiar pamięci podręcznej kodu operacji
xcache.size = 16M
xcache.shm_scheme = "mmap"
xcache.count = 1
xcache.slots = 8 KB
xcache.ttl = 0
xcache.gc_interval = 0
; Zmień xcache.var_size, aby dostosować rozmiar zmiennej pamięci podręcznej
xcache.var_size = 1 mln
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = Włączone
xcache.mmap_path = "/ tmp / xcache"
xcache.coredump_directory = ""
xcache.cacher = Wł
xcache.stat = Wł
xcache.optimizer = Off

Do zrobienia: Musisz to trochę rozwinąć i połączyć z xcache w odniesieniach.

Kopie zapasowe

Nie ma nic ważniejszego niż automatyczne tworzenie kopii zapasowych witryny. Możesz uzyskać kopie zapasowe migawek od swojego dostawcy hostingu, które są również bardzo przydatne, ale wolę również mieć automatyczne kopie zapasowe.

Utwórz skrypt automatycznej kopii zapasowej

Zwykle zaczynam od utworzenia katalogu / backups, z katalogiem / backups / files pod nim. Jeśli chcesz, możesz dostosować te ścieżki.

mkdir -p / backups / files

Teraz utwórz skrypt backup.sh w katalogu kopii zapasowych:

vi /backups/backup.sh

Dodaj następujące elementy do pliku, dostosowując ścieżki i hasło mysqldump w razie potrzeby:

#! / bin / sh

THEDATE = `data +% d% m% y% H% M`

mysqldump -uadmin -p NAZWA BAZY DANYCH HASŁA> /backups/files/dbbackup$THEDATE.bak

tar -cf /backups/files/sitebackup$THEDATE.tar / var / www / vhosts / moja-ścieżka-witryny / httpdocs
gzip /backups/files/sitebackup$THEDATE.tar

znajdź / backups / files / site * -mtime +5 -exec rm {} \;
znajdź / backups / files / db * -mtime +5 -exec rm {} \;

Skrypt najpierw utworzy zmienną z datą, więc wszystkie pliki będą miały takie same nazwy dla pojedynczej kopii zapasowej, a następnie zrzuci bazę danych, rozpakuje pliki internetowe i zgzipuje je. Polecenia wyszukiwania służą do usuwania plików starszych niż 5 dni, ponieważ nie chcesz, aby na dysku zabrakło miejsca.

Spraw, aby skrypt był wykonywalny, uruchamiając następujące polecenie:

chmod u + x /backups/backup.sh

Następnie musisz przypisać mu automatyczne uruchamianie przez cron. Upewnij się, że używasz konta, które ma dostęp do katalogu kopii zapasowych.

crontab -e

Dodaj następujący wiersz do tabeli crontab:

1       1       *       *       *       /backups/backup.sh

Możesz przetestować skrypt z wyprzedzeniem, uruchamiając go po zalogowaniu się na konto użytkownika. (Zazwyczaj kopie zapasowe uruchamiam jako root)

Synchronizuj kopie zapasowe poza witryną z Rsync

Teraz, gdy masz już uruchomione automatyczne kopie zapasowe serwera, możesz je zsynchronizować w innym miejscu za pomocą narzędzia rsync. Warto przeczytać ten artykuł o tym, jak skonfigurować klucze ssh do automatycznego logowania: Dodaj publiczny klucz SSH do zdalnego serwera za pomocą jednego polecenia

Możesz to przetestować, uruchamiając to polecenie na komputerze z systemem Linux lub Mac w innej lokalizacji (mam serwer linux w domu, na którym to uruchamiam)

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

Pierwsze uruchomienie zajmie trochę czasu, ale na końcu twój lokalny komputer powinien mieć kopię katalogu plików w katalogu / offsitebackups /. (Upewnij się, że utworzyłeś ten katalog przed uruchomieniem skryptu)

Możesz to zaplanować, dodając go do linii crontab:

crontab -e

Dodaj następujący wiersz, który będzie uruchamiał rsync co godzinę po 45 minutach. Zauważysz, że używamy tutaj pełnej ścieżki rsync.

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

Możesz zaplanować uruchamianie go o innej godzinie lub tylko raz dziennie. To naprawdę zależy od ciebie.

Zauważ, że istnieje wiele narzędzi, które pozwolą ci na synchronizację przez ssh lub ftp. Nie musisz używać rsync.

Bezpieczeństwo

Pierwszą rzeczą, którą chcesz zrobić, jest upewnienie się, że masz zwykłe konto użytkownika do używania przez ssh i upewnij się, że możesz użyć su, aby przełączyć się na roota. To bardzo zły pomysł, aby zezwolić na bezpośrednie logowanie dla roota przez ssh.

Wyłącz logowanie roota przez SSH

Edytuj plik / etc / ssh / sshd_config i poszukaj następującego wiersza:

#PermitRootLogin tak

Zmień tę linię, aby wyglądała następująco:

PermitRootLogin no

Przed dokonaniem tej zmiany upewnij się, że masz zwykłe konto użytkownika i możesz uzyskać uprawnienia roota jako root, w przeciwnym razie możesz się zablokować.

Wyłącz wersję SSH 1

Naprawdę nie ma powodu, by używać czegoś innego niż SSH w wersji 2, ponieważ jest bezpieczniejszy niż poprzednie wersje. Edytuj plik / etc / ssh / sshd_config i poszukaj następującej sekcji:

#Protocol 2,1
Protokół 2

Upewnij się, że używasz tylko protokołu 2, jak pokazano.

Uruchom ponownie serwer SSH

Teraz musisz ponownie uruchomić serwer SSH, aby to zadziałało.

/etc/init.d/sshd restart

Sprawdź otwarte porty

Możesz użyć następującego polecenia, aby zobaczyć, na których portach nasłuchuje serwer:

netstat -an | grep SŁUCHAJ

Naprawdę nie powinno być niczego innego niż porty 22, 80 i prawdopodobnie 8443 dla plesk.

Skonfiguruj zaporę

Możesz opcjonalnie skonfigurować zaporę sieciową iptables, aby blokować więcej połączeń. Na przykład zazwyczaj blokuję dostęp do innych portów niż z mojej sieci służbowej. Jeśli masz dynamiczny adres IP, nie będziesz chciał tej opcji.

Jeśli do tej pory wykonałeś już wszystkie kroki tego przewodnika, prawdopodobnie nie jest konieczne dodawanie do zestawu zapory sieciowej, ale dobrze jest poznać dostępne opcje.

Zobacz też

  • Korzystanie z Iptables w systemie Linux

Bibliografia

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


Prywatność i ochrona - Najpopularniejsze artykuły

Jak wylogować wszystkie urządzenia z konta Slack

Prywatność i ochrona Dec 4, 2024

Jeśli obawiasz się, że ktoś ma dostęp do Twojego konta Slack lub chcesz mieć pewność, że stare urządzenia nie są już zalogowane, możesz wylogować każde urządzenie na..


Jak ukryć swój adres IP (i dlaczego chcesz)

Prywatność i ochrona Jun 18, 2025

Twój Adres IP jest jak Twój publiczny identyfikator w Internecie . Za każdym razem, gdy robisz coś w internecie, Twój adres IP informuje serwery, gdzie odesłać..


Jak wyświetlić lub wyczyścić historię przeglądania na konsoli Xbox One

Prywatność i ochrona May 15, 2025

Przeglądarka Edge na Xbox One przechowuje historię przeglądania wraz z potencjalnie wrażliwymi plikami cookie, plikami tymczasowymi i danymi formularzy - tak jak robi to przegl�..


Jak blokować pliki cookie (z wyjątkiem używanych witryn) w dowolnej przeglądarce

Prywatność i ochrona Oct 30, 2025

Pliki cookie mogą być przydatne, gdy masz nad nimi kontrolę. Dzisiaj przyjrzymy się, jak możesz kontrolować pliki cookie, blokując je, z wyjątkiem sytuacji, gdy chcesz, aby ..


Czy powinieneś używać 32-bitowego czy 64-bitowego systemu Ubuntu Linux?

Prywatność i ochrona Sep 21, 2025

Aż do Ubuntu 13.04.0 , Ubuntu zalecił wszystkim użytkownikom korzystanie z 32-bitowej wersji Ubuntu na swojej stronie pobierania. Jednak to zalecenie zostało usun..


Jak zablokować pliki cookie innych firm w każdej przeglądarce internetowej

Prywatność i ochrona Feb 4, 2025

Internetowe pliki cookie istnieją od początku istnienia sieci iw większości służą pożytecznym celom. Ale chociaż większość ciasteczek jest dość nieszkodliwa, a nawet k..


Czy powinieneś uaktualnić system Windows 10 do wersji Professional?

Prywatność i ochrona Aug 4, 2025

TREŚĆ NIENARUSZONA Jednak otrzymujesz Windows 10 - w ramach oferty bezpłatnej aktualizacji lub na nowym komputerze - prawdopodobnie otrzymujesz system Windows 10..


Użyj Tweak UI, aby automatycznie zalogować się do XP

Prywatność i ochrona Apr 26, 2025

TREŚĆ NIENARUSZONA Jedną z irytacji niektórych osób z XP jest konieczność logowania się przy każdym ponownym uruchomieniu. Nie zrozum mnie źle, jeśli masz komputer, do którego k..


Kategorie