Het Embleem van NginxNginx is een server van het hoge prestatiesWeb en de server van de postvolmacht die door Igor Sysoev wordt geschreven en een goede vervanging voor Apache HTTPD, de marktleider. Nginx verhoogt snel zijn marktaandeel met belangrijke websites zich aansluit bij het als wordpress.com. In het onderzoek Netcraft van Juni 2008 verloor LiteSpeed meer dan 600 duizend plaatsen tijdens dit onderzoek, terwijl nginx bereikt meer dan miljoen plaatsen; meer dan verdubbelend in aantallen. Het blogging systeem WordPress zette onlangs elk van zijn ladingsstabilisatoren in nginx om, gebruikend de stroomopwaartse knoeiboelmodule om 8-9 duizend verzoeken per seconde te dienen. Wij hebben ook beslist sommige van onze websites naar Nginx te verplaatsen. Hier zijn weinig essenti�le uiteinden en algemene richtlijnen voor het vormen Nginx. Dit is geen substituut voor het lezen van de documentatie (rtfm). Nochtans wanneer u zelfs daarna het lezen van wordt geplakt en het herlezen van de nginxdocumentatie dan hieronder gelezen. U zult de waarde van de uiteinden hieronder slechts dan begrijpen :)

Wij zullen op algemene configuratieuiteinden evenals ons voor het virtuele ontvangen concentreren.

Nota: Bij het virtuele ontvangen gebruikt u het zelfde IP adres voor veelvoudige websites. Elke website hebben=zal= het waarschijnlijkst afzonderlijke .htaccess die (werd u aanvankelijk ontvangen op het Webserver van Apache HTTPD veronderstelt) dossiers, afzonderlijke wortelfolder enz. Bijvoorbeeld in ��n website hebt u wordpress, terwijl op andere u MODx kunt hebben en wie misschien phpBB op het derde kent. Al deze verschillende.htaccess- richtlijnen moet in het dossier van de nginxconfiguratie gaan.

Nginx heeft binnen een belangrijke beperking regels in zoverre dat herschrijven u geen veelvoudige voorwaarden voor kunt opleggen herschrijft regel. Apache HTTPD verstrekt enerzijds een goede oplossing gebruikend veelvoudige richtlijnen RewriteCond.

Nginx staat enerzijds toe als verklaring. U kunt hebben regels binnen herschrijven als blokken. Nochtans als het blok zelf beperkt is. U hebt niet en of of veelvoudige voorwaarden aan enig als blok toe te voegen. Ook kunt u niet nestelen als blokken. Er is ook niet geen anders verklaring. Nochtans kunt u regelmatige uitdrukkingen gebruiken zodat is het volgende mogelijk:

als ($request_method! ~ ^ (KRIJG|HOOFD) $) {
    terugkeer 501;
}

Nochtans kunt u niet twee variabelen tegelijkertijd controleren. Speciaal in virtueel het ontvangen scenario kunnen dergelijke beperkingen vaak als showstoppers worden waargenomen. Nochtans vond ik dat met weinig die extra u met innovatieve oplossingen kunt op de proppen komen om uw speciale behoeften te dienen denkt. Bijvoorbeeld is een zeer gemeenschappelijke regel .htaccess voor vele PHP gebaseerde Websoftware met inbegrip van wordpress:

RewriteEngine 
RewriteBase/
RewriteCond % {REQUEST_FILENAME}! - F
RewriteCond % {REQUEST_FILENAME}! - D
RewriteRule. /index.php [L]

Het zegt dat als gevraagde filename niet aanwezig is en ook geen folder dan is index.php in plaats daarvan aanhaal.

Nochtans terwijl RewriteCond het zelfde voor de meeste PHP gebaseerde software is is RewriteRule niet. Bijvoorbeeld herschrijft een gedeelte van regels want phpBB is:

RewriteCond % {REQUEST_FILENAME}! - F
RewriteCond % {REQUEST_FILENAME}! - D
RewriteCond % {REQUEST_FILENAME}! - l
RewriteRule ^ [a-z0-9_-] +/? (p ([0-9] +) \ .html)? $ /viewforum.php? START=$2 [QSA, L, NC]

Negeer nu derde RewriteCond voor. Het controleert ook symbolische verbindingen. Aangezien u kunt zien regel is herschrijven verschillend. Veronderstel u zowel WordPress als phpBB websites op ��n enkel IP adres (enige server) moet ontvangen. Aangezien de eerste twee regels gemeenschappelijk zijn kunt u doen schrijft de volgende regel die van toepassing zal zijn op de beide server:

# Als het een dossier, een folder of een symbolische verbinding is
als (- e $request_filename) {
��� onderbreking;
}

Dit doet het zelfde ding dat vorige RewriteCond doet en van toepassing op alle websites op de server die is (plaatste u het binnen de server veronderstelt).

Nu kunt u afzonderlijk hebben regels voor uw individuele server herschrijven. Bijvoorbeeld kunt u deze regel voor uw WordPress gebruiken blog:

# herschrijf regels voor blog.example.com
als ($host ~* ^blog \ .example \ .com$) {
    herschrijf ^ (. *) $ /index.php? q=$1 laatste;
    onderbreking;
}

De onderbreking moet ervoor zorgen dat geen verdere regels na alle vorige verklaringen in worden verwerkt als de voorwaarde is uitgevoerd.

Laatste zorgt ervoor dat geen verder regels herschrijft wordt uitgevoerd wanneer regelgelijken herschrijf.

Ik heb drie artikelen onlangs met de nadruk op het virtuele ontvangen geschreven:

  1. Hoe te phpBB op Nginx met/te lopen zonder het Virtuele Ontvangen
  2. Nginx: hoe te om folderresolutie te bevestigen richt de kwestie evenals intern in het virtuele ontvangen opnieuw
  3. Hoe te om Nginx te vormen voor het virtuele ontvangen

Toevoeg weinig meer uiteinden om het hoofdstuk te voltooien, zullen wij?

Hoe te om dossiers te verhinderen beginnend met. (als .htaccess) van wordt bekeken in Nginx?

Voeg dit binnen uw serverblok dichtbij toe de bovenkant:

plaats ~/\. {
��� ontken allen;
}

Dit zal alle externe verzoeken om dossiers met namen verwerpen die beginnen met. (punt).

Hoe te www url aan niet -niet-www varianten opnieuw te richten?

Bijvoorbeeld is hier hoe u alle verzoeken zoals http://www.example.com/yourpage aan http://example.com/yourpage kan opnieuw richten:

als ($host ~* ^www \. (. *)) {
��� vastgestelde $host_without_www $1;
��� herschrijf ^ (. *) $ permanent http://$host_without_www$1; # bevatten $1 /yourpage, niet 'www.example.net/yourpage'
}

Nota: Dit voorbeeld is van hun website

Hoe te om Apache HTTPD regels aan Nginx herschrijven regels herschrijf om te zetten?

Ik heb sommige nuancen boven en in de artikelen besproken. Het enige grootste uiteinde ik kan geven is dat in Apache HTTPD de regelmatige uitdrukking in RewriteRule met het Verzoek URI zonder a/bij het begin wordt aangepast, terwijl in Nginx het bij het begin met een verzoekuri met een schuine streep aanpast. Zo bijvoorbeeld herschrijft een Apache HTTPD regel zoals dit:

RewriteRule ^ [a-z0-9_-] *-f ([0-9] +)/? (p ([0-9] +) \ .html)? $ /viewforum.php? F=$1&START=$3 [QSA, L, NC]

wordt dit in nginx:

^/[herschrijf a-z0-9_-] *-f ([0-9] +)/? (p ([0-9] +) \ .html)? $ /viewforum.php? f=$1&start=$3 duur;

Eenvoudig, is niet het?

Nota: De behoeften van RewriteCond te zijn het uitgevoerde gebruiken als richtlijnen zoals hierboven verklaard.

Hoe te registrerend beeld/statische dossiers ophouden?
Hoe te om een vervaldatum voor beeld/statische dossiers te specificeren?

# dien direct statische dossiers
plaats ~* ^.+. (jpg|jpeg|GIF|css|PNG|js|ico|HTML) $ {
��� access_log������� van;
��� verloopt���������� 30d;
}

Voel vrij om over dit artikel in ons forum te bespreken.

PS. Voor het geval dat u benieuwd bent het binnendringen in een beveiligd computersysteem niet over het breken van een software of het gebruiken van het voor kwaadwillige doeleinden die (is barsten) is. Het binnendringen in een beveiligd computersysteem is over het kennen van een onderwerp in vertrouwelijke details. Jammer genoeg verwarren de druk-middelen journalisten vaak tussen het binnendringen in een beveiligd computersysteem en het barsten en het binnendringen in een beveiligd computersysteem van een slechte naam gegeven.

PPS. Wat niet ik nog heb onderzocht is het prestatiesverschil tussen nginx en Apache HTTPD. Ik zal op dat recenter bijwerken.