Justera en dedikerad virtuell webbserver

May 22, 2025
Sekretess och säkerhet
OBEHANDLAT INNEHÅLL

När du får en dedikerad virtuell server för att köra din webbplats är chansen god att den är konfigurerad för alla, och inte anpassad för att maximera prestanda för att driva en webbplats.

Innehåll

[ Dölj ]

  • 1 Översikt
  • 2 Linux-konfiguration
    • 2.1 Inaktivera DNS
    • 2.2 Inaktivera SpamAssassin
    • 2.3 Inaktivera xinetd
    • 2.4 Begränsa Plesk-minnesanvändningen
    • 2.5 Inaktivera eller stäng av Plesk (tillval)
  • 3 MySQL-konfiguration
    • 3.1 Aktivera frågecache
    • 3.2 Inaktivera TCP / IP
  • 4 Apache-konfiguration
  • 5 PHP-konfiguration
    • 5.1 Ta bort onödiga PHP-moduler
    • 5.2 PHP Opcode-cache
  • 6 säkerhetskopior
    • 6.1 Skapa automatiskt säkerhetskopieringsskript
    • 6.2 Synkronisera säkerhetskopior utanför webbplatsen med Rsync
  • 7 Säkerhet
    • 7.1 Inaktivera root-inloggning via SSH
    • 7.2 Inaktivera SSH version 1
    • 7.3 Starta om SSH-servern
    • 7.4 Kontrollera om det finns öppna portar
    • 7.5 Ställ in en brandvägg
  • 8 Se även
  • 9 Referenser

Översikt

Det finns ett antal problemområden där vi vill maximera prestanda:

  • Linux-konfiguration
    Det finns vanligtvis tjänster som inte behöver vara, vilket slösar minne som kan användas för fler anslutningar.
  • MySQL-konfiguration
    Ofta är standardinställningarna baserade på en liten server, vi kan lägga till några viktiga ändringar för att öka prestandan mycket.
  • Apache-konfiguration
    Som standard installerar de flesta värdleverantörer apache med nästan varje modul installerad. Det finns ingen anledning att ladda moduler om du inte någonsin ska använda dem.
  • PHP-konfiguration
    Standard-PHP-konfigurationen är på samma sätt uppblåst, det finns vanligtvis massor av onödiga extra moduler installerade.
  • PHP Opcode Cache
    I stället för att PHP ska kunna kompilera skripten om varje gång kommer en opcode-cache att cacha de sammanställda skripten i minnet för enorma prestandaförhöjningar.
  • Säkerhetskopior
    Bör förmodligen ställa in några automatiska säkerhetskopior, eftersom din webbhotell inte kommer att göra det åt dig.
  • säkerhet
    Visst, Linux är säkert nog som standard, men det finns vanligtvis några uppenbara säkerhetsproblem som du kan fixa med några snabba inställningar.

Linux-konfiguration

Det finns ett stort antal tweaks du kan göra, som varierar något beroende på servern du använder. Dessa tweaks är för en server som kör CentOS, men de borde fungera för de flesta DV-servrar.

Inaktivera DNS

Om din värdleverantör hanterar DNS för din domän (troligtvis) kan du inaktivera att DNS-tjänsten körs.

inaktivera dns
/etc/init.d/ namngiven stopp
chmod 644 /etc/init.d/named

Kommandot chmod tar bort exekveringsbehörighet från skriptet och förhindrar att det körs vid start.

Inaktivera SpamAssassin

Om du inte använder e-postkonton på själva servern, bör du inte bry dig mot skräppostverktyg. (Du bör också kolla in Google Apps, mycket bättre e-postlösning)

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

Inaktivera xinetd

Xinetd-processen innehåller ett antal andra processer, varav ingen är användbar för en typisk webbserver.

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

Begränsa Plesk-minnesanvändning

Om du använder plesk-panelen kan du tvinga den att använda mindre minne genom att lägga till en alternativfil.

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

Lägg till följande rader i filen:

MinSpareServers 1
MaxSpareServers 1
StartServers 1
MaxClients 5

Observera att det här alternativet är känt för att fungera på MediaTemple DV-servrar, men det har inte kontrollerats på några andra. (Ser Referenser )

Inaktivera eller stäng av Plesk (tillval)

Om du bara använder Plesk en gång om året, finns det väldigt liten anledning att låta den vara igång alls. Observera att detta steg är helt valfritt och lite mer avancerat.

Kör följande kommando för att stänga av plesk:

/etc/init.d/psa stopp

Du kan inaktivera att den körs vid start genom att köra följande kommando:

chmod 644 /etc/init.d/psa

Observera att om du inaktiverar det kan du inte starta det manuellt utan att ändra filbehörigheterna tillbaka (chmod u + x).

MySQL-konfiguration

Aktivera frågecache

Öppna din /etc/my.cnf-fil och lägg till följande rader i avsnittet [mysqld] så här:

[mysqld]
query-cache-type = 1
fråga-cache-storlek = 8M

Du kan lägga till mer minne i frågecachen om du vill, men inte använda för mycket.

Inaktivera TCP / IP

Ett överraskande antal värdar möjliggör åtkomst till MySQL på TCP / IP som standard, vilket inte är meningsfullt för en webbplats. Du kan ta reda på om mysql lyssnar på TCP / IP genom att köra följande kommando:

netstat -an | grep 3306

För att inaktivera, lägg till följande rad i din /etc/my.cnf-fil:

hoppa över nätverk

Apache-konfiguration

Öppna din httpd.conf-fil, som ofta finns i /etc/httpd/conf/httpd.conf

Hitta linjen som ser ut så här:

Timeout 120

Och ändra det till detta:

Timeout 20

Hitta nu avsnittet som innehåller dessa rader och justera till något liknande:

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

PHP-konfiguration

En av de saker du bör tänka på när du justerar en server på PHP-plattformen är att varje enskild apache-tråd kommer att ladda upp PHP på en separat plats i minnet. Detta innebär att om en oanvänd modul lägger till 256k minne till PHP, över 40 apache-trådar slösar du bort 10 MB minne.

Ta bort onödiga PHP-moduler

Du måste hitta din php.ini-fil, som vanligtvis finns på /etc/php.ini (Observera att på vissa distributioner kommer det att finnas en /etc/php.d/-katalog med ett antal .ini-filer, en för varje modul.

Kommentera alla lastmodulrader med dessa moduler:

  • odbc
  • snmp
  • pdo
  • odbc pdo
  • mysqli
  • jonkubbelastare
  • json
  • imap
  • ldap
  • ncurses

Todo: Lägg till mer information här.

PHP Opcode Cache

Det finns ett antal opcode-cachar som du kan använda, inklusive APC, eAccelerator och Xcache, den sista är min personliga preferens på grund av stabilitet.

Ladda ner xcache och extrahera den till en katalog och kör sedan följande kommandon från xcache-källkatalogen:

phpize
./configure --enable-xcache
göra
gör installationen

Öppna din php.ini-fil och lägg till ett nytt avsnitt för xcache. Du måste justera banorna om dina php-moduler laddas från någon annanstans.

vi /etc/php.ini

Lägg till följande avsnitt i filen:

[xcache-common]
zend_extension = /usr/lib/php/modules/xcache.so
[xcache.admin]
xcache.admin.user = "mitt användarnamn"
xcache.admin.pass = "putanmd5hashhere"
[xcache]
; Ändra xcache.size för att ställa in storleken på opcode-cachen
xcache.size = 16M
xcache.shm_scheme = "mmap"
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
; Ändra xcache.var_size för att justera storleken på den variabla cachen
xcache.var_size = 1M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Av
xcache.readonly_protection = På
xcache.mmap_path = "/ tmp / xcache"
xcache.coredump_directory = ""
xcache.cacher = På
xcache.stat = På
xcache.optimizer = Av

Todo: Behöver utöka detta lite och länka till xcache i referenserna.

Säkerhetskopior

Det är väldigt lite viktigare än att ha automatiska säkerhetskopior av din webbplats. Du kanske kan få säkerhetskopior av ögonblicksbilder från din webbhotell, vilket också är mycket användbart, men jag föredrar att ha automatiserade säkerhetskopior också.

Skapa automatiskt säkerhetskopieringsskript

Jag börjar vanligtvis med att skapa en / backups katalog, med en / backups / files katalog under den. Du kan justera dessa vägar om du vill.

mkdir -p / säkerhetskopior / filer

Skapa nu ett backup.sh-skript i säkerhetskopian:

vi /backups/backup.sh

Lägg till följande i filen, justera sökvägarna och mysqldump-lösenordet efter behov:

#! / bin / sh

THEDATE = `datum +% 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

hitta / säkerhetskopior / filer / webbplats * -mtime +5 -exec rm {} \;
hitta / säkerhetskopior / filer / db * -mtime +5 -exec rm {} \;

Skriptet skapar först en datumvariabel så att alla filer får samma namn för en enda säkerhetskopia, sedan dumpar databasen, tar upp webbfilerna och gzips dem. Sökkommandona används för att ta bort filer som är äldre än fem dagar, eftersom du inte vill att din enhet ska ta slut.

Gör skriptet körbart genom att köra följande kommando:

chmod u + x /backups/backup.sh

Därefter måste du tilldela den för att köras automatiskt av cron. Se till att du använder ett konto som har åtkomst till säkerhetskopieringskatalogen.

crontab -e

Lägg till följande rad i crontab:

1       1       *       *       *       /backups/backup.sh

Du kan testa skriptet i förväg genom att köra det medan du är inloggad på användarkontot. (Jag kör vanligtvis säkerhetskopiorna som root)

Synkronisera säkerhetskopior utanför webbplatsen med Rsync

Nu när du har automatiserade säkerhetskopior av din server som körs kan du synkronisera dem någon annanstans genom att använda rsync-verktyget. Du vill läsa den här artikeln om hur du ställer in ssh-tangenter för automatisk inloggning: Lägg till offentlig SSH-nyckel till fjärrservern i ett enda kommando

Du kan testa detta genom att köra det här kommandot på en Linux- eller Mac-maskin på en annan plats (jag har en linuxserver hemma, det är där jag kör det här)

rsync -a anvä[email protected]: / säkerhetskopior / filer / * / offsitebackups /

Det tar ganska lång tid att köra första gången, men i slutet bör din lokala dator ha en kopia av filkatalogen i / offsitebackups / katalogen. (Se till att skapa den katalogen innan du kör skriptet)

Du kan schemalägga detta genom att lägga till det i en crontab-rad:

crontab -e

Lägg till följande rad, som kör rsync varje timme vid 45-minutersmarkeringen. Du kommer att märka att vi använder hela vägen till rsync här.

45 * * * * / usr / bin / rsync -a anvä[email protected]: / säkerhetskopior / filer / * / offsitebackups /

Du kan schemalägga att den ska köras vid en annan tidpunkt, eller bara en gång per dag. Det är verkligen upp till dig.

Observera att det finns många verktyg som gör att du kan synkronisera via ssh eller ftp. Du behöver inte använda rsync.

säkerhet

Det första du vill göra är att se till att du har ett vanligt användarkonto att använda via ssh, och se till att du kan använda su för att växla till root. Det är en väldigt dålig idé att tillåta direkt inloggning för root över ssh.

Inaktivera root-inloggning över SSH

Redigera filen / etc / ssh / sshd_config och leta efter följande rad:

#PermitRootLogin ja

Ändra den raden så att den ser ut så här:

PermitRootLogin nr

Se till att du har ett vanligt användarkonto och kan su till root innan du gör denna ändring, annars kan du låsa dig ute.

Inaktivera SSH version 1

Det finns egentligen ingen anledning att använda något annat än SSH version 2, eftersom det är säkrare än tidigare versioner. Redigera filen / etc / ssh / sshd_config och leta efter följande avsnitt:

#Protokoll 2,1
Protokoll 2

Se till att du bara använder protokoll 2 som visas.

Starta om SSH-servern

Nu måste du starta om SSH-servern för att detta ska träda i kraft.

/etc/init.d/sshd starta om

Sök efter öppna portar

Du kan använda följande kommando för att se vilka portar servern lyssnar på:

netstat -an | grep LISTEN

Du borde verkligen inte ha något lyssnande annat än portarna 22, 80 och möjligen 8443 för plesk.

Ställ in en brandvägg

Du kan valfritt ställa in en iptables-brandvägg för att blockera fler anslutningar. Till exempel blockerar jag vanligtvis åtkomst till andra portar än mitt arbetsnätverk. Om du har en dynamisk IP-adress vill du undvika det alternativet.

Om du redan har följt alla stegen i den här guiden hittills är det förmodligen inte nödvändigt att också lägga till en brandvägg i mixen, men det är bra att förstå dina alternativ.

Se även

  • Använda Iptables på Linux

Referenser

.post-innehåll .inmatningsfot

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


Sekretess och säkerhet - Mest populära artiklar

[Updated] Google Drive har ett allvarligt skräppostproblem, men Google säger att en fix kommer

Sekretess och säkerhet Jan 4, 2025

Google Drive har ett ganska dåligt skräppostproblem, och det verkar som att Google inte bryr sig. Spammare kan dela filer som automatiskt visas på din Drive och det finns inget s..


Hur du återställer ditt glömda Instagram-lösenord

Sekretess och säkerhet Jun 28, 2025

Om du inte använder en lösenordshanteraren , dessa komplexa lösenord kan vara ganska svåra att komma ihåg. Om du har glömt ditt Instagram-lösenord kan du inte ..


Hur man upptäcker (och undviker) falska Android-appar i Play Store

Sekretess och säkerhet Feb 7, 2025

OBEHANDLAT INNEHÅLL Falska Android-appar i Play Store är ett problem. Människor skapar listor som är utformade för att se ut precis som populära appar, ofta med samma ikon o..


Så här skyddar du ditt Gmail- och Google-konto

Sekretess och säkerhet Nov 14, 2024

Av alla dina onlinekonton finns det en stor chans att Google har det mesta av din information. Tänk på det: om du använder Gmail för e-post, Chrome för surfning och Android fö..


Hur man blockerar någon på Facebook

Sekretess och säkerhet Feb 8, 2025

OBEHANDLAT INNEHÅLL Facebook är världens mest populära sociala nätverk, och med det kommer en massa problem. Inte bara måste du ta itu med alla vanliga troll du hittar onlin..


Alla funktioner som kräver ett Microsoft-konto i Windows 10

Sekretess och säkerhet Dec 19, 2024

OBEHANDLAT INNEHÅLL Windows 10, liksom Windows 8 innan det, är integrerat med Microsofts onlinetjänster. Microsoft föredrar att du loggar in på Windows med ditt Microsoft-kon..


Hur du ser andra enheter loggat in på ditt Facebook-konto

Sekretess och säkerhet Jul 11, 2025

Du loggade in på ditt Facebook-konto på din väns dator och du är inte säker på om du har loggat ut. Eller kanske är du orolig att någon annan har ditt lösenord. Tack och lo..


Så här inaktiverar du Spotlight-webbsökningar på Mac, iPhone och iPad

Sekretess och säkerhet Aug 4, 2025

Apples Mac OS X och iOS skickar dina Spotlight-sökningar över Internet till Apple. Du ser sedan resultat från Bing och föreslagna webbplatser, platser och mediainnehåll. Du kan..


Kategorier