Nginx NafnplataNginx er a h�r flutningur vefur framrei�sluma�ur og p�stur umbo� framrei�sluma�ur skrifa�ur vi� Igor Stj�rnandi t�lvubanka og g�� kaup skipti fyrir G�tub�fi HTTPD, the marka�ur lei�togi. Nginx er flj�tt � s�vaxandi m�li �ess marka�ur hluti me� maj�r websites tengja �a� eins og wordpress.com. the J�n� 2008 Netcraft k�nnun LiteSpeed glata�ur fleiri en 600 ��sund sta�ur � me�an this k�nnun, � me�an nginx �bati fleiri en a millj�n sta�ur; fleiri en tv�faldur reikningur. The WordPress blogging kerfi undanfari�breytir ekki minna en �ess hla�a jafnv�gi til nginx, using the andstreymis kj�tk�ssa m�t til bera fram 8-9 ��sund bei�ni second. Vi� of hafa �kve�inn til hreyfa sumir af okkar websites til Nginx. H�r ert f�ir frumskilyr�i kenndur og almennur vi�mi�unarreglur fyrir configuring Nginx. This er ekki a sta�gengill fyrir lestur the heimildas�fnun (rtfm). Hvernig sem hven�r �� ert fastur jafnvel eftir � lestur og me� tilv�sun til- lestur the nginx heimildas�fnun �� lesa ni�ri. �� vilja skilja the gildi af the kenndur ni�ri eini ��:)

Vi� vilja brennidepill almennur stelling kenndur eins og heilbrig�ur eins og fyrir raunverulegur �vinveittur.

minnispunktur raunverulegur �vinveittur �� nota the sami IP heimilisfang fyrir margfeldi websites. Hvor website vilja l�klegur hafa a�skilinn .htaccess ( hrokafullur �� var�lfur upphaflega farfuglaheimili G�tub�fi HTTPD vefur framrei�sluma�ur) skr�, a�skilinn r�t skr� etc. Fyrir ford�mi einn website �� hafa wordpress, � me�an the annar �� mega hafa MODx og hver vita ef til vill phpBB the �ri�ji. Allur �essir �l�kur .htaccess tilskipun af nau�syn til leggja stund � the nginx stelling skr�().

Nginx hefur a maj�r takm�rkun umskrifa regla �essi �� geta ekki leggja � margfeldi �stand fyrir a umskrifa regla. G�tub�fi HTTPD the annar h�nd afla g�� kaup lausn using margfeldi RewriteCond tilskipun.

Nginx the annar h�nd leyfa ef sta�h�fing �� geta hafa umskrifa regla innan ef h�sar��. Hvernig sem the ef h�sar�� sig ert takmarka�ur. �� gera ekki hafaog e�ae�atil b�ta vi� margfeldi �stand til a einn ef h�sar��. Einnig �� geta ekki hrei�ur ef h�sar��. There ert neitun annars sta�h�fing annar hvor. Hvernig sem �� geta nota venjulegur tj�ning svo the h�pur stu�ningsmanna er m�gulegur:

ef ($request_method !~ ^(GETHEAD|)$ ) {     koma aftur 501; }

Hvernig sem �� geta ekki st��va tveir breyta a t�mi. S�rstaklega raunverulegur �vinveittur atbur�ar�s svo sem takm�rkun geta oft vera skynja eins og showstoppers. Hvernig sem �G stofna �essi me� l�till auka�j�nusta �� geta koma upp me� n�junga- lausn til bera fram �inn s�rstakur af nau�syn. Fyrir ford�mi a mj�g sameiginlegur .htaccess regla fyrir margir PHP undirsta�a vefur hugb�na�ur a� me�t�ldum wordpress er:

RewriteEngine  RewriteBase  RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L]

�a� �essi ef the bei�ni filename er ekki n�t�minn og er einnig ekki a skr� �� �kalla index.php � sta�inn.

Hvernig sem � me�an the RewriteCond er the sami fyrir PHP undirsta�a hugb�na�ur the RewriteRule mynda� af is not. Fyrir ford�mi a hluti af the umskrifa regla fyrir phpBB er:

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

Hunsa the �ri�ji RewriteCond fyrir n�. �a� einnig st��va fyrir t�knr�nn hlekkur. Eins og �� geta sj� the umskrifa regla er �l�kur. Gera r�� fyrir �� ��rf til gestgjafi b��ir WordPress og phpBB websites a einn IP heimilisfang ( einn framrei�sluma�ur). Eins og the fyrstur tveir regla ert sameiginlegur �� geta gera skrifa the h�pur stu�ningsmanna regla hver vilja s�kja um til b��ir the framrei�sluma�ur:

# Ef  �a�  er a  skr�,  skr�  e�a  t�knr�nn  hlekkuref (-e $request_filename) {      brot;}

This hjartarskinn the sami hlutur eins og the fyrri RewriteCond hjartarskinn og er n�tilegur til allur the websites the framrei�sluma�ur ( hrokafullur �� be placed �a� innan the framrei�sluma�ur).

N� �� geta hafa a�skilinn umskrifa regla fyrir �inn einstaklingur framrei�sluma�ur. Fyrir ford�mi �� geta nota this regla fyrir �inn WordPress blog:

# umskrifa  regla  fyrir blog.example.com ef ($ gestgjafi ~* ^blog.example.com\\$) {     umskrifa ^(. *)$ index.php? q1 =$ s��astur;    brot;}

The brot er til tryggja �essi neitun frekari regla ert a�fer� eftir allt saman the fyrri sta�h�fing the ef �stand hefur been framkv�ma.

The s��astur tryggja �essi neitun frekari umskrifa regla ert framkv�ma hven�r the umskrifa regla jafningi.

�G hafa skrifa�ur �r�r hlutur undanfari� me� raunverulegur �vinveittur:

  1. Hvernig til hlaupa phpBB Nginx me� �n Raunverulegur �vinveittur
  2. Nginx: hvernig til festa skr� einbeitni t�lubla� eins og heilbrig�ur eins og innri me� tilv�sun til- stj�rna raunverulegur �vinveittur
  3. Hvernig til stilla Nginx fyrir raunverulegur �vinveittur

Vi� skulum b�ta vi� f�ir fleiri kenndur til heill the kafli, munu vi�?

Hvernig til hindra skr� byrjun me�. (eins og .htaccess) fr� tilvera �horfandi Nginx?

B�ta vi� this innan �inn framrei�sluma�ur h�sar�� n�l�gur the toppur:

sta�setning~ \.  {      afneita  allur;}

This vilja hafna allur yfirbor� bei�ni fyrir skr� me� nafni byrjun me�. (punktur).

Hvernig til me� tilv�sun til- stj�rna www url's til non-www afbrig�i?

Fyrir ford�mi h�r er hvernig �� geta me� tilv�sun til- stj�rna allur bei�ni eins og http:/www.example.com/yourpage til http:/example.com/yourpage:

//
ef ($ gestgjafi ~* ^www..\(*)) {      setja $host_without_www $1;      umskrifa ^(.*)$ http:/$host_without_www1$  varanlegur; # $1  innihalda '/yourpage',  ekki 'www.example.net/yourpage'  }

minnispunktur This ford�mi er fr� �eirra website

Hvernig til umbreyta G�tub�fi HTTPD umskrifa regla til Nginx umskrifa regla?

�G hafa r��a sumir litbrig�i yfir og the hlutur. The einn allst�r �j�rf� �G geta gefa er �essi G�tub�fi HTTPD the venjulegur tj�ning RewriteRule er jafningi me� the Bei�ni URI �n a the byrjun, � me�an Nginx �a� jafningi me� a bei�ni uri me� a rista the byrjun. Svo fyrir ford�mi a G�tub�fi HTTPD umskrifa regla svo sem eins og this:

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

ver�a this nginx:

umskrifa ^/a[-z0-9_-]*-f0([-9]+)/?(p([0-9]+)\.html)?$ viewforum.php? f1start3=$&=$ s��astur;

Einfaldur, mynda� af is not �a�?

minnispunktur The RewriteCond's af nau�syn til vera �hald using ef tilskipun eins og �tsk�ra yfir.

Hvernig til st��va sk�garh�gg �mynd truflanir skr�?
Hvernig til tilgreina ��kve�inn greinir � ensku s��asti s�ludagur fyrir �mynd truflanir skr�?

# bera fram  truflanir  skr�  beintsta�setning ~* ^..jpgjpeggifcsspngjsicohtml+(|||||||)$ {     access_log         burt;    expires           30d; }

Feel frj�ls til r��a ��ur � this hlutur okkar.

PS. tilfelli �� ert fur�a rei�hestur mynda� af is not ��ur � brot a hugb�na�ur e�a using �a� fyrir illgjarn tilgangur (sprunga er Rei�hestur er ��ur � hygginn a efni n�inn sm�atri�i. �v� mi�ur the prenta- fr� mi��ldum bla�ama�ur oft rugla saman � milli rei�hestur og sprunga og hefur rei�hestur a sl�mur nafn.

PPS. Hva�a �G h�li kanna enn er the flutningur mismunur � milli nginx og G�tub�fi HTTPD. �G vilja endurn�ja �essi seinna.