Nginx LogoNginx is un high performance web a servi �i po�t� proxy a servi part. trecut de la vb. write by Igor Sysoev �i un bun replacement pentru Apache HTTPD, art.hot. pia�� leader. Nginx is rapidly increasing s�u pia�� share cu major websites a se uni cu it asem�n�tor wordpress.com. �n Iunie 2008 Netcraft survey LiteSpeed pierdut mai mult dec�t 600 thousand sites �n timpul this survey, while nginx gained mai mult dec�t un moar� sites; mai mult dec�t dublu �n�untru num�r. Art.hot. WordPress blogging sistem recently convertizor tot de s�u load balancers la spre nginx, folosire art.hot.upstream hash module la spre a servi 8-9 thousand requests de secund�. Noi de asemenea have decided la spre a mi�ca ni�te de our websites la spre Nginx. Aici e�ti pu�ini fundamental tips �i general guidelines pentru configuring Nginx. Acesta este nu un substitute pentru gata art.hot. documentation (rtfm). Totu�i c�nd tu e�ti stuck sear� dup� gata �i re- gata art.hot. nginx documentation apoi atunci gata sub. Tu vei understand art.hot. value de la tips sub unic apoi atunci:)

Noi voin�� a voi focus on general configuration tips as well as pentru virtual gazd�.

not � �n�untru virtual gazd� tu folos art.hot. same IP adres� pentru multiple websites. Each website voin�� a voi most posibil have separate .htaccess (assuming tu were initially c�min on Apache HTTPD web a servi) dosar, separate root sincer etc. Pentru example �n�untru unul website tu ai wordpress, while pe alt tu po�i have MODx �i cine knows poate phpBB pe al treilea. Tot ace�tia different .htaccess direc�ional nevoie la spre energie �n nginx configuration dosar().

Nginx has un major limitation �n�untru rewrite conduc�tor �n�untru that tu abil import multiple conditions pentru un rewrite conduc�tor. Apache HTTPD pe alt m�n� provides un bun solution folosire multiple RewriteCond direc�ional.

Nginx pe alt m�n� allows dac� declara�ie Tu po�i have rewrite conduc�tor cu dac� butuc. Totu�i art.hot. dac� butuc themselves e�ti limitat. Tu a face nu have �i sausaula spre a aduna multiple conditions la spre un singur dac� butuc. De asemenea tu abil nest dac� butuc. Acolo e�ti nu else declara�ie fiecare. Totu�i tu po�i folos regulat expresie so art.hot. a urma is posibil:

dac� ($request_method !~ ^(GETHEAD|)$ ) {     �ntoarcere 501; }

Totu�i tu abil a verifica doi variabil la un timp. Special �n�untru virtual gazd� scenario such limitations a putea often a fi perceived as showstoppers. Totu�i I a �ntemeia that cu deget mic supliment thinking tu po�i a veni sus cu innovative solutions la spre a servi al t�u special nevoie. Pentru example un foarte virgul� .htaccess conduc�tor pentru mul�i PHP baz� web produse de plastic a cuprinde wordpress is:

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

It says that dac� art.hot. requested filename is nu present �i is de asemenea nu un sincer apoi atunci a factura index.php �n schimb.

Totu�i while art.hot. RewriteCond is art.hot. same pentru most PHP baz� produse de plastic art.hot. RewriteRule isn't. Pentru example un por�ie de la rewrite conduc�tor pentru phpBB is:

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

A nesocoti art.hot. al treilea RewriteCond pentru acum. It de asemenea a verifica pentru symbolic links. As tu po�i a vedea art.hot. rewrite conduc�tor is different. Cin� tu nevoie la spre gazd� both WordPress �i phpBB websites on un singur IP adres� ( singur a servi). As art.hot. primul doi conduc�tor e�ti virgul� tu po�i a face a scrie art.hot. a urma conduc�tor care voin�� a voi a aplica la spre both art.hot. a servi:

# Dac�  acesta este  un  dosar,  sincer  sau symbolic link dac� (-e $request_filename) {      gustare de diminea��;}

This does art.hot. same thing as art.hot. previous RewriteCond does �i is cerere la spre tot art.hot. websites pe a servi (assuming tu placed it cu art.hot. a servi).

Acum tu po�i have separate rewrite conduc�tor pentru al t�u individual a servi. Pentru example tu po�i folos this conduc�tor pentru al t�u WordPress blog:

# rewrite  conduc�tor  pentru blog.example.com dac� ($ gazd� ~* ^blog.example.com\\$) {     rewrite  ^(. *)$ index.php? q1 =$ ultimul;    gustare de diminea��;}

Art.hot.gustare de diminea�� is la spre a asigura that nu mai �ndep�rtat conduc�tor e�ti proces dup� tot art.hot. previous declara�ie �ndac� condition has been executed.

Art.hot.ultimul a asigura that nu mai �ndep�rtat rewrite conduc�tor e�ti executed c�nd art.hot. rewrite conduc�tor meciuri.

Eu am part. trecut de la vb. write trei anghinar� recently cu emphasis on virtual gazd�:

  1. Cum la spre a alerga phpBB on Nginx cu f�r� Virtual Gazd�
  2. Nginx: cum la spre fix sincer resolution publicare as well as intern re- sincer �n�untru virtual gazd�
  3. Cum la spre configure Nginx pentru virtual gazd�

Let's a aduna pu�ini mai mult tips la spre completat art.hot. chapter, shall noi?

Cum la spre prevent dosar beginning cu. (asem�n�tor .htaccess) de la being privit �n�untru Nginx?

A aduna this cu al t�u a servi butuc apropiat art.hot. top:

a localiza ~ \.  {     deny   tot;}

This voin�� a voi reject tot external requests pentru dosar cu nume beginning cu. (dot).

Cum la spre re- sincer www url's la spre nu-www deosebit?

Pentru example aici is cum tu po�i re- sincer tot requests asem�n�tor http:/www.example.com/yourpage la spre http:/example.com/yourpage:

//
dac� ($ gazd� ~* ^www..\(*)) {      a ezat  a aranja $host_without_www $1;     rewrite ^(.*)$ http:/$host_without_www1$  permanent; # $1  contact '/yourpage',  nu 'www.example.net/yourpage'  }

not � This example is de la lor website

Cum la spre convertizor Apache HTTPD rewrite conduc�tor la spre Nginx rewrite conduc�tor?

Eu am a discuta ni�te nuan�� above �i �n anghinar�. Art.hot. singur cel mai mare v�rf I a putea a da is that �n�untru Apache HTTPD art.hot. regulat expresie �n�untru RewriteRule is meciuri cu art.hot. A cere URI f�r� un la art.hot. beginning, while �n�untru Nginx it meciuri cu un a cere uri cu un slash la art.hot. beginning. So pentru example un Apache HTTPD rewrite conduc�tor such as this:

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

becomes this �n�untru nginx:

rewrite ^/ un[-z0-9_-]*-f0([-9]+)/?(p([0-9]+)\.html)?$ viewforum.php? f1start3=$&=$ ultimul;

Simplu, isn't it?

not � Art.hot. RewriteCond's nevoie la spre a fi implemented folosiredac� direc�ional as explained above.

Cum la spre oprire logging imagine stare dosar?
Cum la spre special un expiry dat� pentru imagine stare dosar?

# a servi  stare  dosar  directa localiza ~* ^..jpgjpeggifcsspngjsicohtml+(|||||||)$ {     access_log        off;     expires           30d; }

A se sim�i liber la spre a discuta despre this anghinar� �n�untru our forum.

PS. �n�untru caz tu e�ti mirathacking isn't despre gustare de diminea�� un produse de plastic sau folosire it pentru malicious purposes (cracking is). Hacking is despre knowing un subiect �n�untru intim details. Unfortunately art.hot. tipar-media ziarist often a �ncurca between hacking �i cracking �i has a da hacking un bad nume.

PPS. Ce I haven't explored �nc� is art.hot. performance difference between nginx �i Apache HTTPD. I voin�� a voi update on that mai t�rziu.