Apache-optimering för Low End VPS på Ubuntu 14.04

Apache är mycket lätt att installera och initiera, men det kommer med många moduler förinstallerade och som ett resultat kan du få prestandaproblem när du kör på en VPS med låg RAM.

Så det finns inte alltid behov av en större server, utan du kan helt enkelt konfigurera Apache-inställningar på rätt sätt och få bästa möjliga prestanda. Här är några saker du bör göra för att uppnå det.

Denna handledning är för Ubuntu 14.04 LTS men principerna liknar även tidigare versioner.


1. Inaktivera Apache-moduler

Du kan se en lista över alla moduler som installerats med kommandot ls /etc/apache2/mods-available/och alla moduler som för närvarande är aktiva med ls /etc/apache2/mods-enabled/.

På den första Apache-installationen finns 15 eller fler moduler aktiverade som standard. Dessa är för många och de flesta behövs inte.

Först och främst måste du göra en lista över alla för närvarande aktiva moduler och spara den för framtida referens ifall du inaktiverar något som behövs och du måste återaktivera det. Inaktivera sedan helt enkelt moduler en i taget med kommandot (med moduleName som exempel):

sudo a2dismod moduleName

... och starta om Apache efter varje ändring för att se om något fel uppstår.

Några moduler som du bör inaktivera om du inte behöver dem är:

  • PHP
  • SSL
  • Skriva om
  • Perl
  • Pytonorm

När du har inaktiverat en modul och laddat om Apache-konfigurationen, kan du leta efter fel genom att öppna Apache-felloggen med en textredigerare som nano.

sudo nano /var/log/apache2/error.log

Om du får ett fel är det bara att återaktivera motsvarande modul med:

sudo a2enmod moduleName

Starta sedan om Apache igen tills du får ordning på minimilistan!


2. Ställ in mpm_prefork

Med standard Apache-konfigurationen (som inte är välbalanserad för små servrar) kan minnet tömmas snabbt och din molnserver kan bli överbelastad. Detta gör att webbsidan hänger sig i ett ständigt laddat tillstånd. Det är troligt att servern kommer att hålla dessa döda Apache-processer aktiva och försöka servera innehåll i onödan, vilket minskar antalet tillgängliga processer.

För att lösa det här problemet måste du först ta reda på hur mycket RAM din server behöver förutom Apache och den genomsnittliga mängd minne som Apache-processer använder.

Medan Apache körs, öppna det översta kommandot på servern.

top -bn 1

På resultattabellen:

  • lägg till siffrorna i RES-kolumnen för varje process, utom apache2 och ta sedan bort den från den totala mängden RAM. Låt oss säga att du får 600 MB .
  • medelvärdet från alla apache2-processer . Låt oss säga att skaffa 20 MB .
  • gör sedan divisionen 600/20 = 30 maximala Apache-processer

Nästa steg, redigera mpm_prefork-modulens konfigurationsfil:

sudo nano /etc/apache2/mods-enabled/mpm_prefork.conf

Det kan se ut så här:

<IfModule mpm_prefork_module>
    StartServers             2
    MinSpareServers          2
    MaxSpareServers          5
    MaxRequestWorkers        30
    MaxConnectionsPerChild   0
</IfModule>

Var:

  • StartServers: antal serverprocesser som ska startas.
  • MinSpareServers: minsta antal serverprocesser som hålls lediga.
  • MaxSpareServers: maximalt antal serverprocesser som hålls lediga.
  • MaxRequestWorkers: maximalt antal serverprocesser som får startas.
  • MaxConnectionsPerChild: maximalt antal förfrågningar som en serverprocess betjänar.

I MaxRequestWorkers- inställningen måste du ändra den till vad du än hittade i divisionen ovan.

Nu, om din VPS blir överbelastad och når det maximala antalet klienter som den kan betjäna på en gång, kommer den att tjäna dessa och andra användare kommer helt enkelt att få ett snabbt misslyckande. De kan sedan ladda om sidan för att försöka igen. Det är mycket bättre att ha dessa anslutningar nära snabbt men lämna servern i ett friskt tillstånd istället för att hänga öppen för alltid.


3. Minska dina loggar

För att maximera prestandan kan du definitivt logga mindre information. I Apache-standardkonfigurationen är LogLevel- inställningen inställd på att varna . Du kan ändra det till fel för att bara behålla felmeddelandena.

Öppna Apache-konfigurationsfilen:

sudo nano /etc/apache2/apache2.conf

Hitta raden:

LogLevel warn

... och ändra det till:

LogLevel error

Spara sedan filen och starta om Apache med:

sudo service apache2 restart

Standardfilen som Apache behåller loggarna är /var/log/apache2/error.log .


4. Överväg att ersätta mod_php

Om du kör en PHP-sajt är chansen stor att du använder mod_php-modulen. Den här modulen kan få varje underordnad Apache-process att använda över 100 MB RAM även om förfrågningarna är för statiska resurser som bilder, css och javascript.

Ett bra alternativ är php-fpm- modulen, som är en separat process som använder fastcgi-protokollet. Med php-fpm kan minnet för Apache-processer sjunka till 10 MB för statiskt innehåll och 60 MB för dynamiskt.

Även om det kan vara lite svårt att få saker att fungera med den här förändringen, är det värt ansträngningen.


5. Överväg att ersätta mpm_prefork

De flesta Apache-konfigurationer använder modulen mpm_prefork som är trådsäker och använder flera underordnade processer med en tråd var och varje process hanterar en anslutning i taget. Om du inte behöver externa moduler som PHP eller Rails kan du ersätta den med modulen apache2-mpm-worker , som ofta är snabbare. Worker MPM använder flera underordnade processer med många trådar i varje och varje tråd hanterar en anslutning i taget.

För att aktivera arbetarmodulen måste du installera den.

sudo apt-get install apache2-mpm-worker

Detta kommando kommer att avinstallera mpm_prefork , mos_php och andra inkompatibla tilläggsmoduler.


Installera Plesk på CentOS 7

Installera Plesk på CentOS 7

Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser

Installera Cacti på Debian Jessie

Installera Cacti på Debian Jessie

Introduktion Cacti är ett övervaknings- och grafverktyg med öppen källkod som är helt baserat på RRD-data. Genom Cacti kan du övervaka nästan vilken typ av enhet som helst

Installera Lets Encrypt SSL på One-Click WordPress-appen

Installera Lets Encrypt SSL på One-Click WordPress-appen

Introduktion Lets Encrypt är en certifikatmyndighetstjänst som erbjuder gratis TLS/SSL-certifikat. Installationsprocessen förenklas av Certbot,

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Använder du ett annat system? Vad är Tekkit Classic? Tekkit Classic är ett modpack för spelet som alla känner och älskar; Minecraft. Den innehåller några av ver

Konfigurera iRedMail på Debian Wheezy

Konfigurera iRedMail på Debian Wheezy

Använder du ett annat system? Den här handledningen visar dig hur du installerar groupware iRedMail på en ny installation av Debian Wheezy. Du bör använda en serve

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

PHP och relaterade paket är de mest använda komponenterna när du distribuerar en webbserver. I den här artikeln kommer vi att lära oss hur du ställer in PHP 7.0 eller PHP 7.1 o

Hur man installerar Squid Proxy på CentOS

Hur man installerar Squid Proxy på CentOS

Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera

Tre gratis serverkontrollpaneler (snabbinstallation)

Tre gratis serverkontrollpaneler (snabbinstallation)

1. Virtualmin/Webmin Virtualmin är en kraftfull och flexibel kontrollpanel för webbhotell för Linux- och UNIX-system baserad på den välkända Open Source-webbasen

Konfigurera en Yii-applikation på Ubuntu 14.04

Konfigurera en Yii-applikation på Ubuntu 14.04

Yii är ett PHP-ramverk som låter dig utveckla applikationer snabbare och enklare. Att installera Yii på Ubuntu är enkelt, eftersom du kommer att lära dig exakt

Använder skärmen på Ubuntu 14.04

Använder skärmen på Ubuntu 14.04

Screen är ett program som tillåter flera terminalsessioner inom ett fönster. Detta låter dig simulera flera terminalfönster där det ma

Konfigurera din egen DNS-server på Debian/Ubuntu

Konfigurera din egen DNS-server på Debian/Ubuntu

Denna handledning förklarar hur man ställer in en DNS-server med Bind9 på Debian eller Ubuntu. Genomgående i artikeln, byt ut ditt-domännamn.com i enlighet med detta. Vid th

Använda Logrotate för att hantera loggfiler

Använda Logrotate för att hantera loggfiler

Inledning Logrotate är ett Linux-verktyg som förenklar administrationen av loggfiler. Den körs vanligtvis en gång om dagen via ett cron-jobb och hanterar loggbasen

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten

Konfigurera Red5 Media Server på Ubuntu 16.04

Konfigurera Red5 Media Server på Ubuntu 16.04

Använder du ett annat system? Red5 är en mediaserver med öppen källkod implementerad i Java som låter dig köra Flash fleranvändarapplikationer som livestreamin

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

I den här artikeln kommer vi att se hur man kompilerar och installerar Nginx mainline från de officiella källorna för Nginx med PageSpeed-modulen, som låter dig t

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Vanilla Forum på Ubuntu 16.04

Hur man installerar Vanilla Forum på Ubuntu 16.04

Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer