Clear the un-clear for me!

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) so how i tell nginx to
redirect him to (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);
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;
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;
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 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);
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

Anyone ?

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 [email protected]: