Is mode
, En deze recensie is niet te zeggen, dat is geen goed idee.
De verklaring is eenvoudig. Wij gebruiken meestal Apache elk type inhoud te dienen via een HTTP-verzoek, maar meestal dragen veel Apache modules die nodig is voor onze toepassingen werken correct, te beginnen met de zeer PHP, maar we hoeven niet te statische content serveren (afbeeldingen, css-bestanden of javascript, gecomprimeerde bestanden ...). Als we konden scheiden in een eenvoudige statische verzoeken konden die dynamisch aan verschillende diensten redirect en we zouden krijgen dat veel minder middelen consumiesen statische sinds een server kon doen met veel lichter dan Apache. We kunnen!
Dit zou de traditionele setting van een webserver zijn:
HTTP-verzoeken bereiken de webserver van het internet en het leest schijf bestanden die nodig zijn om het te serveren. Niets nieuws.
Dit is het scenario dat we willen migreren:
Alle HTTP-verzoeken worden op poort 80 ontvangen door een server veel lichter dan Apache ( nginx , lighttpd ) dat verantwoordelijk is voor het serveren van statische content direct van schijf en dynamische redirect verzoeken om Apache luisteren nu altijd in de 8080, dat wil zeggen, het licht fungeert als een proxy-server voor dynamische verzoeken inhoud.
Voor de onderhavige zaak, heeft de server gemigreerd virtual hosts gedefinieerd op verschillende sites en zocht om die weinig verkeer te maken als ze nu zijn, dat wil zeggen Apache serveren het allemaal, en verander alleen die waar het verkeer Nginx is hoog om de statische dienen.
De eerste stap is dan ook om te installeren en te configureren nginx te treden als full proxy. We zullen ook wijzigen Apache te stoppen met luisteren op poort 80. Laten we beginnen met het laatste.
We moeten de httpd.conf wijzigen te luisteren op de nieuwe haven, in mijn geval 8080. We zullen de juiste lijn te veranderen om zo uitzien:
Luister 8080 Maar dat is niet alles. We moeten ook passen de virtuele hosts gedefinieerd te luisteren op de nieuwe poort. Aan het einde van hetzelfde bestand zal de corresponderende lijn voor dit te veranderen (van u zal vergelijkbaar zijn, misschien in plaats van het sterretje heeft het ip van uw machine):
NameVirtualHost *: 8.080 In mijn CentOS5 de virtuele hosts configuratie opgeslagen in / etc / httpd / httpd.d. Vanaf daar zijn we gestart met deze opdracht zullen alle werken in een keer:
. for i in `dir`, doe sed is / * 80 / *: 8080 / g $ i; echo $ i; gedaan Gelukkig, het moest worden vervangen door de hand op een rijtje
.
Installeer nu nginx:
yum install nginx en doe de eerste configuratie die ons zal toestaan, voor het moment, dat vol is van Apache proxy, dwz dat alles om Apache omleiding.
Maak het bestand / etc / nginx / proxy.conf
lossen 127.0.0.1; proxy_redirect off; proxy_set_header Host $ host; proxy_set_header X-Real-IP $ REMOTE_ADDR; proxy_set_header X-Doorschakelen-Voor $ proxy_add_x_forwarded_for; client_max_body_size 128m; client_body_buffer_size 256k; proxy_connect_timeout 60; proxy_send_timeout 60; proxy_read_timeout 60; proxy_buffer_size 32k; proxy_buffers 32 256k; proxy_busy_buffers_size 512k; proxy_temp_file_write_size 512k;
De eerste regel zal de DNS-server IP zijn.
Voeg nu de volgende nginx configuratie binnen de "server" standaard.
/ Etc / nginx / nginx.conf
server { luister 80; locatie / { PROXY_PASS http:// $ host: 8080; include / etc / nginx / proxy.conf; }
De eerste stap moet worden afgerond. Verhogen we de Apache en nginx diensten en probeerde virtuele server hosts navigeren. Als alles goed ging het goed zou moeten werken, maar als je kijkt naar de headers die worden ontvangen in reactie, bijvoorbeeld met de plugin livehttpheaders van Firefox, zie hoe de volgende toe te voegen aan alle toepassingen:
Server: nginx/0.8.53 Test 1 overschreden. Laten we nu configureren bepaalde virtuele hosts voor de nginx dienen statische inhoud.
/ Etc / nginx / conf.d / virtual.conf
server { luister 80; www.tudominio.com servernaam; locatie ~ * ^ + \ (jpg |.. js | gif | png | ico | gif | txt | js | css | swf | zip | rar | zip | exe | rar | mp3 | wav | mpeg | asf | wmv | flv ) $ { root / var / httpd / www.tudominio.com; verstrijkt 30d; } locatie / { PROXY_PASS http://www.tudominio.com:8080; include / etc / nginx / proxy.conf; } }
Hiermee zeggen we dat alle statische bestanden direct en nginx dienen andere verzoeken worden doorgestuurd naar Apache. We moeten een "server" voor elke virtuele host die we willen dit configureren creëren. Eigenlijk wat we doen is het opzetten van de dezelfde schijf pad voor statische bestanden die we hadden in Apache, dus je hoeft niet om iets te veranderen. Op veel plaatsen static.tudominio.com stellen het creëren van een gastheer, maar dit zou fysiek veranderen al uw web-applicaties, en dat is niet wat bedoeld is
.
We kunnen alleen maar herstarten nginx. Hoe weten we of het werkt? Eenvoudig, de herziening van de logs van Apache en nginx. Als we zien hoe de laatste serveert statische bestanden en Apache alle andere
.
Tot slot hebben we een klein probleem. Omdat Apache alle HTTP verzoeken als afkomstig van de machine zelf, aangezien in feite uit ons door de proxy. Dit kan een probleem voor het verkeer analysers zijn, maar ook als je een systeem dat controleert de IP's van de gebruikers. Om dit lossen we mod_rpaf voor Apache (reverse proxy toevoegen vooruit module) hebben we de koppen vervangen goed, zodat het externe IP-we zien is dat van onze klant. Ik gedownload, geïnstalleerd en geconfigureerd:
/ Etc / httpd / conf.d / rpaf.conf
Rpaf_module LoadModule modules/mod_rpaf-2.0.so RPAFenable On RPAFsethostname On RPAFproxy_ips 127.0.0.1 RPAFheader X-Doorschakelen-voor
Dit zal je de plaats van de client-IP wordt ontvangen in Apache die wordt geleverd met de header 'X-Doorschakelen-For "dat is waar we de originele nginx.
Dat is het. Als u herstart de Apache server zal zien dat er in de logboeken te starten om de gebruiker echte IP en niet de lokale machine.
Zoals altijd, een laatste detail. Integreren nginx met Cacti te controleren
.
Sjablonen zijn hier , maar ik weet niet goed werken, ik een beetje veranderd deze andere .
Wij voegen in de eerste configuratie van nginx de volgende regels:
locatie / nginx_status { stub_status op; access_log off; IP_DE_TU_SERVIDOR_CACTI toestaan; ontkennen alles; }
Hiermee kunt u de nginx server-status van http://IP_DE_TU_SERVIDOR/nginx_status openen.
In het zip-bestand zijn er vier twee perl scripts die in de scripts directory van uw installatie van cactussen en twee XML die u importeert vanuit de tool zelf te kopiëren. Alles is klaar. Sinds cactussen instellingen waar je server nginx hebt geïnstalleerd voeg de negen bronnen van data en grafieken. Wanneer geconfigureerde url van de toegang zal vragen we zagen een moment geleden.
En hier zijn we dan. In zeer korte tijd zijn we erin geslaagd om de hele structuur van onze website te veranderen zonder verlies van beschikbaarheid en, het beste van alles, hebben we een veel efficiënter en robuuster. In middelgrote verkeerssituatie zal veel verschil in prestaties niet merken, maar je zult een veel meer bereid te maken met pieken en effecten "Slashdot"
.



















