Apache och Nginx. Förbunden med en kedja

Hur Apache & Nginx-kombinationen implementeras i Timeweb

För många företag är Nginx + Apache + PHP en mycket typisk och vanlig kombination, och Timeweb är inget undantag. Men att förstå exakt hur det implementeras kan vara intressant och användbart.

Apache och Nginx. Förbunden med en kedja

Användningen av en sådan kombination dikteras naturligtvis av våra kunders behov. Både Nginx och Apache spelar en speciell roll, var och en löser ett specifikt problem.

grund inställningar Apache utförs i själva Apaches konfigurationsfiler, och inställningar för klientwebbplatser sker genom .htaccess-fil. .htaccess är en konfigurationsfil där klienten självständigt kan konfigurera reglerna och beteendet för webbservern. Den här inställningen kommer att gälla specifikt för hans webbplats. Till exempel, tack vare Apache-funktionaliteten kan användare ändra driftläge inom samma PHP-version från mod_php till mod_cgi; du kan ställa in omdirigeringar, optimering för SEO, bekväm URL, några gränser för PHP.

nginx används som en proxyserver för att omdirigera trafik till Apache och som en webbserver för att servera statiskt innehåll. Vi har också utvecklat säkerhetsmoduler för Nginx som gör att vi kan skydda våra användares data, till exempel för att separera åtkomsträttigheter.

Låt oss föreställa oss att en användare besöker vår kunds webbplats. Först kommer användaren till Nginx, som serverar statiskt innehåll. Det händer omedelbart. Sedan, när det kommer till att ladda PHP, vidarebefordrar Nginx begäran till Apache. Och Apache, tillsammans med PHP, genererar redan dynamiskt innehåll.

Funktioner i Apache & Nginx-paketet i Timeweb

Vår virtuella värd implementerar två huvudoperativsystem för Apache och Nginx: Delad och dedikerad.

Delat system

Detta schema används för de flesta användare. Det kännetecknas av sin enkelhet och resursintensitet: det delade systemet använder färre resurser, vilket är anledningen till att tariffen är billigare. Enligt detta schema kör servern en Nginx, vilket gör att den kan betjäna alla användarförfrågningar och flera instanser av Apache.

Det delade systemet har förbättrats under lång tid: gradvis korrigerade vi bristerna. Bekvämt kan det göras utan att behöva ändra källkoden.

Apache och Nginx. Förbunden med en kedja
Delat system

Dedikerat schema

Dedikerad kräver mer resurser, så dess tariff är dyrare för kunderna. I det dedikerade schemat får varje klient sin egen separata Apache. Resurser här är reserverade för kunden, de tilldelas exklusivt. Hur det fungerar: Det finns flera versioner av PHP på servern. Vi stöder versionerna 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Så för varje version av PHP lanseras en egen Apache.

Apache och Nginx. Förbunden med en kedja
Dedikerat schema

Säker zon. Ställa in zoner i Nginx

Tidigare, för Nginx, använde vi många delade minneszoner (zoner) - ett serverblock per domän. Denna inställning kräver mycket resurser, eftersom en separat zon skapas för varje plats. Men i Nginx-inställningarna är de flesta webbplatser av samma typ, så de kan placeras i en zon tack vare användningen av kartdirektiv i modulen ngx_http_map_module, som låter dig ange korrespondenser. Till exempel har vi en zonmall där vi måste tillhandahålla variabler: sökväg till webbplatsen, PHP-version, användare. Således påskyndades återläsningen av Nginx-konfigurationen, det vill säga omladdningen.

Denna konfiguration sparade kraftigt RAM-resurser och snabbade upp Nginx.

Omladdning fungerar inte!

I det delade schemat blev vi av med behovet av att ladda om Apache när vi ändrade webbplatsinställningar. Tidigare, när en klient ville lägga till en domän eller ändra PHP-versionen, krävdes en obligatorisk omladdning av Apache, vilket ledde till förseningar i svaren och påverkade webbplatsens prestanda negativt.

Vi blev av med omladdningar genom att skapa dynamiska konfigurationer. Tack vare mpm-itk (Apache-modul), varje process körs som en separat användare, vilket ökar säkerhetsnivån. Denna metod låter dig överföra data om användaren och hans document_root från Nginx till Apache2. Således innehåller Apache inte platskonfigurationer, den tar emot dem dynamiskt och omladdningar krävs inte längre.

Apache och Nginx. Förbunden med en kedja
Konfiguration av delat schema

Hur är det med Docker?

Många företag har gått över till ett containerbaserat system. Timeweb överväger just nu möjligheten till en sådan övergång. Naturligtvis finns det för- och nackdelar med varje beslut.

Tillsammans med obestridliga fördelar ger containersystemet användaren färre resurser. I Timeweb, tack vare det beskrivna värdschemat, har användaren ingen begränsning i RAM. Den får mer resurser än i containern. Dessutom kan användaren ha fler Apache-moduler laddade.

Timeweb driver cirka 500 000 webbplatser. Vi tar stort ansvar och gör inga omedelbara, omotiverade förändringar av komplex arkitektur. Apache & Nginx-kombinationen är pålitlig och beprövad. Vi försöker i sin tur uppnå maximal prestanda genom unika konfigurationer.

För högkvalitativ och snabb drift av ett stort antal webbplatser måste du använda en mall och dynamisk konfiguration av Apache och Nginx. Det låter dig enkelt och snabbt administrera ett stort antal liknande servrar.

Källa: will.com

Lägg en kommentar