För en tid sedan Jag berättade om denna serie handledning, om hur man installerar och konfigurerar en server för webbhotell med hög efterfrågan. Den här artikeln handlar om att installera och konfigurera Nginx:
Nginx:
Vi berättade redan om Nginx tidigare i artikeln Nginx: Ett intressant alternativ till Apache, där berättade vi att det är en webbserver som Apache, LightHttpd eller Cherokee, men jämfört med Apache sticker den ut för sin prestanda och låga hårdvaruförbrukning, just därför är det många stora sajter som Facebook, MyOpera.com, DropBox eller till och med WordPress .com använder Nginx istället för Apache. I Linux-världen DesdeLinux Det är inte den enda som använder Nginx, så vitt jag vet använder emsLinux och MuyLinux det också :)
Min personliga erfarenhet av Nginx går tillbaka flera år, då jag av nöd började leta efter lätta alternativ till Apache. Vid den tiden gick Nginx för version 0.6 och dess kompatibilitet med webbplatser med hög efterfrågan i PHP var inte den mest optimala, men idag från version 0.9 och framåt (v1.2.1 tillgänglig på Debian Stable, v1.4.2 tillgänglig på ArchLinux) har förbättrats mycket, så att med en korrekt konfiguration och förening av Nginx + PHP kommer allt att fungera som en charm.
I denna handledningsserie Jag kommer att använda Nginx version 1.2.1-2.2, tillgänglig i Debian Stable repos (Wheezy).
1. Installation:
Vi börjar med det första, installera Nginx från våra förråd.
Om du på din server använder en distribution som Debian, Ubuntu eller något derivat i terminalen måste du ange följande och trycka på ange :
aptitude install nginx
Om du använder en annan distribution på din server som CentOS, Red Hat, Fedora, installerar du helt enkelt paketet: nginx från det officiella arkivet
2. Konfiguration:
Vi har redan Nginx installerat, men vi måste uppenbarligen konfigurera det. Jag har förberett en komprimerad fil på FTP som innehåller alla konfigurationer som används på servrarna. DesdeLinux, både för PHP, Nginx, etc. Låt oss ladda ner och packa upp den filen:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
Detta skapar en mapp som heter nginx-spawn-fastcgi, från den behöver vi två filer för ren Nginx (det vill säga utan att länka den till PHP):
- nginx.conf - »Huvudkonfigurationsfil för Nginx (vi kommer att prata om dess innehåll senare)
- index.html - »En enkel html-fil som vi använder för att se om Nginx verkligen fungerar för oss i sin mest grundläggande form
- mywebsite.net - »Konfigurationsfil för en enkel webbplats, en VHost (Virtual Host) som konfigurerar åtkomst till tidigare html
Låt oss först flytta till Nginx-inställningsmappen:
cd /etc/nginx/
Låt oss sedan ta bort standardkonfigurationen och lägga vår egen:
mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./
Detta, som jag sa, är den viktigaste Nginx-konfigurationsfilen, i den har jag redan definierat följande:
användar www-data; arbetare_processer 4; pid /var/run/nginx.pid;
Användaråtkomst till filsystemet (som nginx kommer åt överallt), antal processer att arbeta med och även PID (nginx process-id).
Vi har också ett litet block som heter händelser (inställningar för händelser) som innehåller en rad som anger det maximala antalet anslutningar som tillåts per händelse. Nedan finns blocket som heter http.
Detta http-block är det som innehåller nästan allt som är relaterat till värd, åtminstone många saker som kommer att intressera dig. Till exempel den maximala tiden att leva eller vänta (timeout), där våra allmänna loggar kommer att vara (access.log och error.log), datakomprimering med gzip, samt andra regler som kan vara användbara i framtiden.
När huvudkonfigurationsfilen är på plats, låt oss kopiera filen från vår VHost till den mapp som är tillgänglig för webbplatser
cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/
Dessutom måste vi skapa en symbolisk länk från den här filen till den webbplatsaktiverade mappen.
ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/
Jag förklarar nyttan av att ha webbplats-aktiverade och webbplatser tillgängliga.
De kommer att hitta stunder när de måste ha flera vhost-filer redo och konfigurerade, för på den servern kommer de att sätta på nätet, säg fem webbplatser. Det händer dock att det ännu inte är dags att aktivera 5 av dessa 2 värdar, men de måste ha filerna redo så att de vid behov är online på kortast möjliga tid. Du kan placera så många vhosts som du vill i webbplatser-tillgängliga (webbplatser-tillgängliga), eftersom de som Nginx läser för att sätta online är bara de för webbplatser-aktiverade (webbplatser-aktiverade), det skulle också fungera i motsatt riktning, om du vill sätta offline ( tillfälligt till exempel) en webbplats, det finns inget behov av att radera filer från din server (filer som vi kommer att behöva vid en annan tidpunkt), vi tar helt enkelt bort den symboliska länken för webbplatser-aktiverade och det är det. Nyttan med att ha symboliska länkar och inte bara kopiera filen från en mapp till en annan är att när vi vill redigera en vhost spelar det ingen roll om vi redigerar den som är aktiverad eller tillgänglig, i slutändan är den samma
arkiv.
Filen mywebsite.net som jag sa tidigare, en vhost som fungerar som ett exempel, det vill säga och med andra ord måste vi ändra mywebsite.net och skapa våra konfigurationer.
Vi måste ändra följande:
- access_log (rad 3): Detta är sökvägen till åtkomstloggfilen till den här webbplatsen
- error_log (rad 4): Detta kommer att vara sökvägen till felloggfilen till den här webbplatsen
- server_name (rad 5): URL, domän som finns i den mappen, till exempel om det var forumet DesdeLinux det skulle vara: forum server_name.desdelinux. Net
- root (rad 6): Sökvägen till mappen där html-filerna finns, låt oss lämna den här i / var / www / eftersom det bara kommer att vara ett test
Nu behöver vi bara kopiera html-filen till den mapp som vi definierar i vår VHost-fil / var / www /:
mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/
Sedan startar vi om Nginx och det är det:
service nginx restart
Och voila, något som detta kommer att visas:
Jag påminner dig om att vi arbetar först med Nginx för HTML, utan att ha PHP-stöd, denna installation av PHP och länka den till Nginx kommer att vara innehållet i nästa handledning (om några dagar lovar jag).
Hur som helst, detta är Nginx installations- och konfigurationshandledning så att det fungerar rent, det vill säga en HTML-webbplats, jag hoppas att det kommer att vara av intresse för dig.
Jag kommer att klargöra att ja, det finns fortfarande bästa praxis som kan användas, men låt oss vänta med att avsluta denna serie handledning och sedan utvärderar vi det slutliga resultatet av arbetet
hälsningar
Tack, mycket hjälpsam!
Tack för din kommentar
I backports finns nginx 1.4 ..
Ja, men på en server i produktion använder jag inget av det 😀
Med "it" menar du den senaste stabila och testade versionen som släpptes av nginx, du låter det låta som att det är apt-pinning från sid. ~ _ ~
Åh kom igen, är det ... på servrarna har jag aldrig gillat att använda andra repor, eller backports eller något liknande 🙂
Alltid stabil på servrar fick jag veta det för år sedan.
Nginx 1.4 är stabil sedan april förra året, i backports är det 1.4.1-3.
2013-04-24
Den stabila nginx-1.4.0-versionen har släppts och innehåller många nya funktioner som utvecklats i 1.3.x-grenen - stöd för proxying av WebSocket-anslutningar, OCSP-häftning, SPDY-modul, gunzip-filter och mer.
http://nginx.org/en/CHANGES-1.4
Du har rätt i vad du säger, min hatt är av.
Tack för att du delar, jag genomför för närvarande ditt äldsta inlägg.
Jag ska fylla dig med frågor XD
Tack för att du läste 🙂
Om du har några frågor eller funderingar, vet du, vi är här för att hjälpa dig, det finns forumet.desdelinux.net där vi tillsammans ska försöka ge dig den bästa lösningen
hälsningar
Jag har en fråga jag har LAMP [Linux (Debian Wheezy), Apache, PHP och MySQL] på min server för WordPress och Owncloud, hur migrerar jag till Ngnix, en annan fråga är vilken skillnad det finns mellan Ngnix och Lighttpd.
Den största komplikationen eller svårigheten att migrera från Apache till Nginx är konfigurationerna för varje webbplats, det vill säga specifikt .htaccess du använder.
.Htaccess är den mest komplexa när du byter till Nginx, eftersom de är olika konfigurationer som du måste sätta i Nginx VHost.
Om LightHTTPd och Nginx ... Jag vet inte, jag använde LightHTTPd bara en gång för många år sedan, för närvarande har jag ingen aning om hur dess utveckling går, speciellt med PHP.
NGINX ser ganska enkelt ut jämfört med Apache. Väntar på nästa avsnitt för att kunna komplettera det med PHP
Jag väntar på tipsen för att optimera mer till nginx 😀
Förresten Gaara, du kan inkludera i din nästa handledning hur man implementerar SSL-stöd.
Hälsningar.
Tipsen som kommer är faktiskt att optimera PHP-bearbetning, sajtcache, jag kan ge exemplet på konfigurationen vi använder i DesdeLinux för Nginx+Wordpress+W3_Total_Cache :)
Tack bra bidrag.
Och guiden för archlinux när? xD
I Arch har det varit väldigt lika, bara namnen på paketen ändras men ... conf är nästan identiskt
Men vem har en produktionsserver med Arch? 😀
Hej där,
Det är jag igen xD ...
Jag följde dina steg med att applicera dem på en maskin med archlinux och jag har följande problem:
[abr4xas@Genius www]$ systemctl status nginx.service
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)
Några förslag 😀
Jo ... xox, jag vill bara ha en intern server, det vill säga jag vill bara byta ut xampp, ska jag göra allt detta?
Om du vill kan du implementera detta (vilket jag upprepar, det är vad DL arbetar med), faktiskt min virtuella server (som jag använder för utveckling och testning) Jag har gjort det med samma sak som jag förklarar.
Det vill säga, du kan antingen ta bort XAMPP och sätta den här varianten så fungerar det bra, eller om du vill lämna XAMPP ... kommer det fortfarande att fungera för dig.
Den positiva punkten med att använda detta som jag visar är den mycket låga förbrukningen av hårdvara jämfört med Apache, men på din persondator, som inte är en hög efterfrågan värd, långt ifrån ... om XAMPP fungerar bra för dig, jag kan inte se varför ta bort det
Jag har redan min Linux-server igång (Debian, Nginx, MySQL och PHP). Jag hade svårt att få PHP att arbeta med Nginx eftersom jag var van vid den enkla Apache-webbservern.
Min fråga är: Vet någon hur jag kan peka en testdomän som jag har köpt till min server? Jag skulle vilja prova min .com-domän för att se hur den fungerar, men jag har inte någon aning om hur man gör det, för jag har alltid använt en NOIP-adress för att komma åt den med noip DUC.
Jag hoppas att någon kan hjälpa mig, tack!
Jag får det här när jag försöker ansluta till din ftp:
cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz
HTTP-begäran skickad, väntar på svar ... 404 Hittades inte
2015-11-23 17:46:30 FEL 404: Hittades inte.
Jag har min CentOS-server igång (Gunicorn, Nginx, PHP) det tog mig mycket arbete att få dem att fungera men poängen där jag fastnade är att den webbsida jag vill starta behöver konfigurera domänleverantören i det här fallet Go Daddy, Så vid den här tiden vet jag inte hur jag ska fortsätta.
Kan du dela konfigurationsfilerna med mig eftersom jag inte kan ladda ner dem snälla