# Clear the un-clear for me!

**URL:** <https://www.ruby-forum.com/t/clear-the-un-clear-for-me/189648>\
**Category:** NGINX\
**Created:** [June 4, 2010, 1:00pm UTC](https://www.ruby-forum.com/t/clear-the-un-clear-for-me/189648 "2010-06-04T13:00:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![aembed](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e8c25b/32.png) [@aembed](https://www.ruby-forum.com/u/aembed)\
**Post date:** [June 4, 2010, 1:00pm UTC](https://www.ruby-forum.com/t/clear-the-un-clear-for-me/189648/1 "2010-06-04T13:00:20Z")

</div>

Hello everyone ,  
First of all , I would like to thanks Igor and his team for this real  
nice web server which can take a huge of work in less resources and fast  
speed .

I hope to get the answers for my questions as i need this answers to  
complete my work .

My questions:-  
1.How i can set a 404 image instead of page , what i means if for  
example some one goes for un-exist image url  
([http://www.example.com/flk123j12l31.gif](http://www.example.com/flk123j12l31.gif)) so how i tell nginx to  
redirect him to ([http://www.example.com/notfound.jpg](http://www.example.com/notfound.jpg)) , i try to use  
this rules , I try to use this rules but it not help .

location ~ /(upload/Pictures|upx/uploads)/.\* {

valid\_referers none block server\_names ~([example.com|google|lll1.com](http://example.com%7Cgoogle%7Clll1.com));  
if ($invalid\_referer) {  
error\_page 404 = /notfound.gif;  
rewrite ^(.\*)$ /leech.gif break;  
}  
}

2.How i can put multiple files in if statement .

What i have now

if ($request\_filename ~ “showthread.php$” ) {  
rewrite ^/vb/(._)$ /vb/vbseo.php last;  
}  
if ($request\_filename ~ “external.php$” ) {  
rewrite ^/vb/(._)$ /vb/vbseo.php last;  
}

if ($request\_filename ~ “archive/index.php$” ) {  
rewrite ^/vb/(.\*)$ /vb/vbseo.php last;  
}

What i would like to have and works

if ($request\_filename ~ (archive/index|external|showthread).php$) {  
rewrite ^/vb/(.\*)$ /vb/vbseo.php last;  
}

4.Does it give a performance boost when i set workers equals to cores  
numbers?

5.What your advices about my images server nginx file.

user nobody;

# no need for more workers in the proxy mode

worker\_processes 16;  
worker\_priority -5;

#error\_log logs/error.log info;

worker\_rlimit\_nofile 65536;

events {  
worker\_connections 2024; # you might need to increase this setting for  
busy servers  
use epoll;  
}

http {  
server\_names\_hash\_max\_size 2048;

types {  
text/html html htm;  
text/css css;  
text/xml xml;  
image/gif gif;  
image/jpeg jpeg jpg;  
application/x-javascript js;

```
text/plain txt;

image/png png;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;

application/pdf pdf;
application/x-rar-compressed rar;
application/x-shockwave-flash swf;
application/zip zip;

application/octet-stream bin exe dll;
application/octet-stream iso img;

```

}

default\_type application/octet-stream;

sendfile on;  
#tcp\_nopush on;  
tcp\_nodelay on;  
server\_tokens off;  
keepalive\_timeout 4;  
gzip on;  
gzip\_min\_length 1100;  
gzip\_buffers 4 32k;  
gzip\_types application/x-javascript text/css;  
gzip\_http\_version 1.1;  
ignore\_invalid\_headers on;  
gzip\_comp\_level 9;  
gzip\_vary on;  
gzip\_disable “MSIE [1-6].”;  
client\_header\_timeout 6m;  
client\_body\_timeout 6m;  
send\_timeout 6m;  
connection\_pool\_size 256;  
client\_header\_buffer\_size 4k;  
large\_client\_header\_buffers 4 32k;  
request\_pool\_size 4k;  
output\_buffers 32 64k;  
postpone\_output 1460;  
client\_body\_buffer\_size 1024k;  
client\_max\_body\_size 128m;  
#Vhost Start

index index.php index.html index.htm;

server {  
error\_page 404 = /404.php;  
access\_log off;  
#error\_log logs/vhost-#error\_log warn;

listen 207.102.41.120:80;  
server\_name [atm.example.com](http://atm.example.com);  
root /home/example/public\_html/files;  
location ~\* .(gif|jpg|jpeg|png|ico)$ {  
expires 40d;  
add\_header Cache-Control public;  
}

# location ~ ^/atm/.\*.php$ {

#deny all;  
#}

location ~ /(atm|includes)/.\*.php$ {  
deny all;  
}

location ~ .php$ {  
try\_files $uri /404.php;  
fastcgi\_param SCRIPT\_FILENAME  
/home/example/public\_html/atm$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_index index.php;  
fastcgi\_buffer\_size 128K;  
fastcgi\_read\_timeout 120;  
fastcgi\_buffers 64 96k;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;

fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param SERVER\_PROTOCOL $server\_protocol;

fastcgi\_param GATEWAY\_INTERFACE CGI/1.1;  
fastcgi\_param SERVER\_SOFTWARE nginx/0.7.65;

fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_pass 127.0.0.1:9000;

}  
}

server {  
access\_log off;  
error\_page 404 = /404.php;  
#error\_log logs/vhost-#error\_log warn;  
listen 207.102.41.120:80;  
server\_name [images.example.com](http://images.example.com);  
root /home/example/public\_html/images;

location ~\* .(gif|jpg|jpeg|png|js|css|ico|swf)$ {  
expires 40d;  
add\_header Cache-Control public;  
valid\_referers none block server\_names  
~(example.com|google.|.lll1.com|localhost);  
if ($invalid\_referer) {  
#error\_page 404 = /ngvaild.gif;  
rewrite ^(.\*)$ /ngvaild.gif break;  
}  
}

location ~ .php$ {  
try\_files $uri /404.php;  
fastcgi\_param SCRIPT\_FILENAME  
/home/example/public\_html/images$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_index index.php;  
fastcgi\_buffer\_size 32K;  
fastcgi\_read\_timeout 60;  
fastcgi\_buffers 64 4k;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;

fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param SERVER\_PROTOCOL $server\_protocol;

fastcgi\_param GATEWAY\_INTERFACE CGI/1.1;  
fastcgi\_param SERVER\_SOFTWARE nginx/0.7.65;

fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_pass 127.0.0.1:9000;}

}

server {  
access\_log off;  
error\_page 404 = /404.php;  
#error\_log logs/vhost-#error\_log warn;  
listen 207.102.41.120:80;  
server\_name [up.example.com](http://up.example.com) [www.up.example.com](http://www.up.example.com);  
root /home/example/public\_html/up;  
location ~\* .(gif|jpg|jpeg|png|js|css|ico|swf)$ {  
#error\_page 404 = /ngvaild.gif;  
expires 40d;  
add\_header Cache-Control public;  
valid\_referers none block server\_names ~([example.com|google.|.lll1.com](http://example.com%7Cgoogle.%7C.lll1.com));  
if ($invalid\_referer) {  
error\_page 404 = /ngvaild.gif;  
rewrite ^(.\*)$ /ngvaild.gif break;  
}  
}

location ~ .php$ {  
try\_files $uri /404.php;  
fastcgi\_param SCRIPT\_FILENAME  
/home/example/public\_html/up$fastcgi\_script\_name;  
fastcgi\_param QUERY\_STRING $query\_string;  
fastcgi\_index index.php;  
fastcgi\_buffer\_size 16K;  
fastcgi\_read\_timeout 90;  
fastcgi\_buffers 64 4k;  
fastcgi\_param REQUEST\_METHOD $request\_method;  
fastcgi\_param CONTENT\_TYPE $content\_type;  
fastcgi\_param CONTENT\_LENGTH $content\_length;

fastcgi\_param REQUEST\_URI $request\_uri;  
fastcgi\_param DOCUMENT\_URI $document\_uri;  
fastcgi\_param DOCUMENT\_ROOT $document\_root;  
fastcgi\_param SERVER\_PROTOCOL $server\_protocol;

fastcgi\_param GATEWAY\_INTERFACE CGI/1.1;  
fastcgi\_param SERVER\_SOFTWARE nginx/0.7.65;

fastcgi\_param REMOTE\_ADDR $remote\_addr;  
fastcgi\_param REMOTE\_PORT $remote\_port;  
fastcgi\_param SERVER\_ADDR $server\_addr;  
fastcgi\_param SERVER\_PORT $server\_port;  
fastcgi\_param SERVER\_NAME $server\_name;  
fastcgi\_pass 127.0.0.1:9000;}  
}  
}

Your help and effort is much appereciated and i really hope to get help  
as soon as possible .

Thanks ,  
M-A-G

---

<div class="post-metadata">

**Author:** ![aembed](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e8c25b/32.png) [@aembed](https://www.ruby-forum.com/u/aembed)\
**Post date:** [June 6, 2010, 6:15am UTC](https://www.ruby-forum.com/t/clear-the-un-clear-for-me/189648/2 "2010-06-06T06:15:33Z")

</div>

Anyone ?

---

<div class="post-metadata">

**Author:** ![aembed](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e8c25b/32.png) [@aembed](https://www.ruby-forum.com/u/aembed)\
**Post date:** [June 6, 2010, 12:23pm UTC](https://www.ruby-forum.com/t/clear-the-un-clear-for-me/189648/3 "2010-06-06T12:23:31Z")

</div>

Ad.1 - Use try\_files

Ad.2 - Don’t use if, instead use different location to capture and  
rewrite

location ~ ^/vb/showthread.php$ {  
rewrite ^/vb/(.\*)$ /vb/vbseo.php last;  
}

Ad. 4 - Yes, also you should use worker\_cpu\_affinity im multicore  
server, read wiki and google it for more information.

Ad. 5 - I Don’t feel to conifdent to check your config ^\_^.

–  
Best regards  
Grzegorz S.

2010/6/6 Ma Ma [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):
