Shouldn't this trigger an nginx 404?


#1

in PHP?

header(“HTTP/1.0 404 Not Found”);
exit();

i even have fastcgi_intercept_errors on; (it wasn’t there before)

?

in access.log i see this… but i was hoping to trigger nginx’s error log
screen?

24.14.13.2 - - [24/Mar/2009:17:35:11 -0700] “GET /foo HTTP/1.1” 404 31
“-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7)
Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)”


#2

On Tue, Mar 24, 2009 at 05:36:14PM -0700, Michael S. wrote:

24.14.13.2 - - [24/Mar/2009:17:35:11 -0700] “GET /foo HTTP/1.1” 404 31
“-” “Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7)
Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)”

Could you make debug log ?


#3

On Wed, Mar 25, 2009 at 09:29:00PM -0700, Michael S. wrote:

    fastcgi_buffers 32 8k;
            ssl_certificate mycert.pem;
            }
            location ~ \.php$ {
                    fastcgi_pass 127.0.0.1:11021;
            }
    }

}

Besides “fastcgi_intercept_errors on” you also need

 error_page  404  /404.html;

nginx does not intercept an error if there is no custom handler for it:
it does not show its default pages. This allows to intercept some
errors,
while passing others as are.

Also, two ways to omit rewrites:

             location / {
                    try_files  $uri  /bar.php?slug=$uri;
             }

             location ~ ^/files/(.*) {
                     fastcgi_pass 127.0.0.1:11021;
                     fastcgi_param  SCRIPT_FILENAME /foo.php;
                     fastcgi_param  QUERY_STRING    file=$1;
             }

             location ~ \.php$ {
                     fastcgi_pass 127.0.0.1:11021;
                     fastcgi_param  SCRIPT_FILENAME /path/to$uri;
                     fastcgi_param  QUERY_STRING    $query_string;
             }

or

             location / {
                    try_files  $uri  @bar;
             }

             location ~ ^/files/(.*) {
                     fastcgi_pass 127.0.0.1:11021;
                     fastcgi_param  SCRIPT_FILENAME 

/path/to/foo.php;
fastcgi_param QUERY_STRING file=$1;
}

             location @bar;
                     fastcgi_pass 127.0.0.1:11021;
                     fastcgi_param  SCRIPT_FILENAME 

/path/to/bar.php;
fastcgi_param QUERY_STRING
slug=$request_ur;
}

             location ~ \.php$ {
                     fastcgi_pass 127.0.0.1:11021;
                     fastcgi_param  SCRIPT_FILENAME /path/to$uri;
                     fastcgi_param  QUERY_STRING    $query_string;
             }

#4

2009/3/26 Igor S. removed_email_address@domain.invalid:

Besides “fastcgi_intercept_errors on” you also need

  error_page  404  /404.html;

nginx does not intercept an error if there is no custom handler for it:
it does not show its default pages. This allows to intercept some errors,
while passing others as are.

This would be good to document. I will try to remember to add it to the
wiki.

        location ~ ^/files/(.*) {
            fastcgi_pass 127.0.0.1:11021;
            fastcgi_param  SCRIPT_FILENAME /path/to/foo.php;
            fastcgi_param  QUERY_STRING   file=$1;
        }

Is there any performance benefit here? Rewrite seems simple. Any I
would like to use try_files for any possible situation that it is
suitable for now :wink:


#5

i changed a couple paths to mask the real stuff but this should give
you an idea.

This is some fastcgi stuff. I would think the intercept_errors one is
what I want…?

Is there an issue with the header being sent (in the middle of the debug
log)

    fastcgi_ignore_client_abort on;
    fastcgi_intercept_errors on;
    fastcgi_buffers 32 8k;
    fastcgi_index index.php;

here’s the server block:

    server {
            listen 443;
            server_name foo.com;
            root /home/software/web/foo.com;
            index index.php index.html;
            ssl on;
            ssl_certificate mycert.pem;
            ssl_certificate_key mykey.key;
            ssl_protocols SSLv3 TLSv1;
            include /etc/nginx/expires.conf;
            location /files {
                    rewrite ^/files/(.*) /foo.php?file=$1 last;
            }
            location / {
                    if (!-e $request_filename) {
                            rewrite ^(.*) /bar.php?slug=$1 last;
                    }
            }
            location ~ \.php$ {
                    fastcgi_pass 127.0.0.1:11021;
            }
    }

}

2009/03/25 21:23:54 [debug] 6025#0: *398373 http process request line
2009/03/25 21:23:54 [debug] 6025#0: *398373 http request line: “GET
/files/10001/fdsfsf HTTP/1.1”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http uri:
“/files/10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http args: “”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http exten: “”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http process request header
line
2009/03/25 21:23:54 [debug] 6025#0: *398373 http header: “Accept:
image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/x-shockwave-flash, application/x-ms-application,
application/x-ms-xbap, application/vnd.ms-xpsdocument,
application/xaml+xml, application/vnd.ms-excel,
application/vnd.ms-powerpoint, application/msword, /
2009/03/25 21:23:54 [debug] 6025#0: *398373 http header:
“Accept-Language: en-us,en-securid”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http header:
“Accept-Encoding: gzip, deflate”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http header: “User-Agent:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR
1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR
3.5.30729; InfoPath.1; MS-RTC LM 8; OfficeLiveConnector.1.3;
OfficeLivePatch.0.0)”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http header: “Host: foo.com
2009/03/25 21:23:54 [debug] 6025#0: *398373 http header: “Connection:
Keep-Alive”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http header: “Cookie:
somecookies”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http header done
2009/03/25 21:23:54 [debug] 6025#0: *398373 event timer del: 13:
1238041438190
2009/03/25 21:23:54 [debug] 6025#0: *398373 generic phase: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 add cleanup:
0000000015A62630
2009/03/25 21:23:54 [debug] 6025#0: *398373 generic phase: 1
2009/03/25 21:23:54 [debug] 6025#0: *398373 test location: “/”
2009/03/25 21:23:54 [debug] 6025#0: *398373 test location: “files”
2009/03/25 21:23:54 [debug] 6025#0: *398373 test location: ~
“.(jpg|jpeg|gif|css|png|js|ico|html)$”
2009/03/25 21:23:54 [debug] 6025#0: *398373 test location: ~ “.php$”
2009/03/25 21:23:54 [debug] 6025#0: *398373 using configuration “/files”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http cl:-1 max:263192576
2009/03/25 21:23:54 [debug] 6025#0: *398373 generic phase: 3
2009/03/25 21:23:54 [debug] 6025#0: 398373 http script regex:
"^/files/(.
)"
2009/03/25 21:23:54 [notice] 6025#0: 398373 "^/files/(.)" matches
“/files/10001/fdsfsf”, client: 123.13.19.7, server: foo.com, request:
“GET /files/10001/fdsfsf HTTP/1.1”, host: “foo.com
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy: “/foo.php”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script args
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy: “file=”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script capture:
“10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script regex end
2009/03/25 21:23:54 [notice] 6025#0: *398373 rewritten data:
“/foo.php”, args: “file=10001/fdsfsf”, client: 123.13.19.7, server:
foo.com, request: “GET /files/10001/fdsfsf HTTP/1.1”, host: “foo.com
2009/03/25 21:23:54 [debug] 6025#0: *398373 post rewrite phase: 4
2009/03/25 21:23:54 [debug] 6025#0: *398373 uri changes: 11
2009/03/25 21:23:54 [debug] 6025#0: *398373 test location: “/”
2009/03/25 21:23:54 [debug] 6025#0: *398373 test location: “files”
2009/03/25 21:23:54 [debug] 6025#0: *398373 test location: ~
“.(jpg|jpeg|gif|css|png|js|ico|html)$”
2009/03/25 21:23:54 [debug] 6025#0: *398373 test location: ~ “.php$”
2009/03/25 21:23:54 [debug] 6025#0: *398373 using configuration “.php$”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http cl:-1 max:263192576
2009/03/25 21:23:54 [debug] 6025#0: *398373 generic phase: 3
2009/03/25 21:23:54 [debug] 6025#0: *398373 post rewrite phase: 4
2009/03/25 21:23:54 [debug] 6025#0: *398373 generic phase: 5
2009/03/25 21:23:54 [debug] 6025#0: *398373 add cleanup:
0000000015A627F8
2009/03/25 21:23:54 [debug] 6025#0: *398373 generic phase: 6
2009/03/25 21:23:54 [debug] 6025#0: *398373 generic phase: 7
2009/03/25 21:23:54 [debug] 6025#0: *398373 access phase: 8
2009/03/25 21:23:54 [debug] 6025#0: *398373 access phase: 9
2009/03/25 21:23:54 [debug] 6025#0: *398373 post access phase: 10
2009/03/25 21:23:54 [debug] 6025#0: *398373 malloc:
0000000015A56840:4096
2009/03/25 21:23:54 [debug] 6025#0: *398373 http init upstream, client
timer: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 malloc:
0000000015A72A60:4552
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“QUERY_STRING”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var:
“file=10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“QUERY_STRING: file=10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“REQUEST_METHOD”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var: “GET”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“REQUEST_METHOD: GET”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“CONTENT_TYPE”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
"CONTENT_TYPE: "
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“CONTENT_LENGTH”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
"CONTENT_LENGTH: "
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“SCRIPT_FILENAME”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var:
“/home/software/web/foo.com”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var: “/foo.php”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“SCRIPT_FILENAME: /home/software/web/foo.com/foo.php”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“SCRIPT_NAME”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var: “/foo.php”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“SCRIPT_NAME: /foo.php”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“REQUEST_URI”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var:
“/files/10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“REQUEST_URI: /files/10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“DOCUMENT_URI”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var: “/foo.php”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“DOCUMENT_URI: /foo.php”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“DOCUMENT_ROOT”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var:
“/home/software/web/foo.com”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“DOCUMENT_ROOT: /home/software/web/foo.com”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“SERVER_PROTOCOL”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var: “HTTP/1.1”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“SERVER_PROTOCOL: HTTP/1.1”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“GATEWAY_INTERFACECGI/1.1”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“GATEWAY_INTERFACE: CGI/1.1”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“SERVER_SOFTWARE”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy: “nginx/”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var: “0.7.42”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“SERVER_SOFTWARE: nginx/0.7.42”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“REMOTE_ADDR”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var:
“123.13.19.7”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“REMOTE_ADDR: 123.13.19.7”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“REMOTE_PORT”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var: “55018”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param: “REMOTE_PORT:
55018”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“SERVER_ADDR”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var:
“10.122.47.96”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“SERVER_ADDR: 10.122.47.96”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“SERVER_PORT”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var: “443”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param: “SERVER_PORT:
443”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“SERVER_NAME”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script var: “foo.com
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“SERVER_NAME: foo.com
2009/03/25 21:23:54 [debug] 6025#0: *398373 http script copy:
“REDIRECT_STATUS200”
2009/03/25 21:23:54 [debug] 6025#0: *398373 fastcgi param:
“REDIRECT_STATUS: 200”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http cleanup add:
0000000015A62AA8
2009/03/25 21:23:54 [debug] 6025#0: *398373 get rr peer, try: 1
2009/03/25 21:23:54 [debug] 6025#0: *398373 socket 14
2009/03/25 21:23:54 [debug] 6025#0: *398373 epoll add connection:
fd:14 ev:80000005
2009/03/25 21:23:54 [debug] 6025#0: *398373 connect to
127.0.0.1:11021, fd:14 #398406
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream connect: -2
2009/03/25 21:23:54 [debug] 6025#0: *398373 event timer add: 14:
60000:1238041494925
2009/03/25 21:23:54 [debug] 6025#0: *398373 post event 0000000015B19630
2009/03/25 21:23:54 [debug] 6025#0: *398373 delete posted event
0000000015B19630
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream request:
“/foo.php?file=10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream send request
handler
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream send request
2009/03/25 21:23:54 [debug] 6025#0: *398373 chain writer buf fl:0 s:4552
2009/03/25 21:23:54 [debug] 6025#0: *398373 chain writer in:
0000000015A62AE0
2009/03/25 21:23:54 [debug] 6025#0: *398373 writev: 4552
2009/03/25 21:23:54 [debug] 6025#0: *398373 chain writer out:
0000000000000000
2009/03/25 21:23:54 [debug] 6025#0: *398373 event timer del: 14:
1238041494925
2009/03/25 21:23:54 [debug] 6025#0: *398373 event timer add: 14:
60000:1238041494926
2009/03/25 21:23:54 [debug] 6025#0: *398373 post event 0000000015A74BA0
2009/03/25 21:23:54 [debug] 6025#0: *398373 post event 0000000015B19630
2009/03/25 21:23:54 [debug] 6025#0: *398373 delete posted event
0000000015B19630
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream request:
“/foo.php?file=10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream dummy handler
2009/03/25 21:23:54 [debug] 6025#0: *398373 delete posted event
0000000015A74BA0
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream request:
“/foo.php?file=10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream process header
2009/03/25 21:23:54 [debug] 6025#0: *398373 malloc:
0000000015AC7810:4096
2009/03/25 21:23:54 [debug] 6025#0: *398373 recv: fd:14 216 of 4096
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 01
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 06
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 00
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 01
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 00
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: BB
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 05
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 00
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record length:
187
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi parser: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi header:
“Status: 404 Not Found”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi parser: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi header:
“Expires: Thu, 19 Nov 1981 08:52:00 GMT”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi parser: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi header:
“Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi parser: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi header:
“Pragma: no-cache”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi parser: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi header:
“Content-type: text/html”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi parser: 1
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi header done
2009/03/25 21:23:54 [debug] 6025#0: *398373 xslt filter header
2009/03/25 21:23:54 [debug] 6025#0: *398373 HTTP/1.1 404 Not Found
Server: nginx
Date: Thu, 26 Mar 2009 04:23:54 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0,
pre-check=0
Pragma: no-cache

2009/03/25 21:23:54 [debug] 6025#0: *398373 write new buf t:1 f:0
0000000015A56DE8, pos 0000000015A56DE8, size: 330 file: 0, size: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 http write filter: l:0 f:0
s:330
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream process
upstream
2009/03/25 21:23:54 [debug] 6025#0: *398373 pipe read upstream: 1
2009/03/25 21:23:54 [debug] 6025#0: *398373 pipe preread: 21
2009/03/25 21:23:54 [debug] 6025#0: *398373 readv: 1:3880
2009/03/25 21:23:54 [debug] 6025#0: *398373 pipe recv chain: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 pipe buf free s:0 t:1 f:0
0000000015AC7810, pos 0000000015AC78D3, size: 21 file: 0, size: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 01
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 03
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 00
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 01
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 00
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 08
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 00
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record byte: 00
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi record length:
8
2009/03/25 21:23:54 [debug] 6025#0: *398373 http fastcgi sent end
request
2009/03/25 21:23:54 [debug] 6025#0: *398373 free: 0000000015AC7810
2009/03/25 21:23:54 [debug] 6025#0: *398373 pipe write downstream: 1
2009/03/25 21:23:54 [debug] 6025#0: *398373 pipe write downstream done
2009/03/25 21:23:54 [debug] 6025#0: *398373 event timer: 14, old:
1238041494926, new: 1238041494931
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream exit:
0000000000000000
2009/03/25 21:23:54 [debug] 6025#0: *398373 finalize http upstream
request: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 finalize http fastcgi
request
2009/03/25 21:23:54 [debug] 6025#0: *398373 free rr peer 1 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 close http upstream
connection: 14
2009/03/25 21:23:54 [debug] 6025#0: *398373 event timer del: 14:
1238041494926
2009/03/25 21:23:54 [debug] 6025#0: *398373 http upstream temp fd: -1
2009/03/25 21:23:54 [debug] 6025#0: *398373 http output filter
“/foo.php?file=10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 copy filter:
“/foo.php?file=10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 xslt filter body
2009/03/25 21:23:54 [debug] 6025#0: *398373 http postpone filter
“/foo.php?file=10001/fdsfsf” 00007FFFAAA4A100
2009/03/25 21:23:54 [debug] 6025#0: *398373 http chunk: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 write old buf t:1 f:0
0000000015A56DE8, pos 0000000015A56DE8, size: 330 file: 0, size: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 write new buf t:0 f:0
0000000000000000, pos 0000000000468D1A, size: 5 file: 0, size: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 http write filter: l:1 f:0
s:335
2009/03/25 21:23:54 [debug] 6025#0: *398373 http write filter limit 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 malloc:
0000000015B092B0:16384
2009/03/25 21:23:54 [debug] 6025#0: *398373 SSL buf copy: 330
2009/03/25 21:23:54 [debug] 6025#0: *398373 SSL buf copy: 5
2009/03/25 21:23:54 [debug] 6025#0: *398373 SSL to write: 335
2009/03/25 21:23:54 [debug] 6025#0: *398373 SSL_write: 335
2009/03/25 21:23:54 [debug] 6025#0: *398373 http write filter
0000000000000000
2009/03/25 21:23:54 [debug] 6025#0: *398373 copy filter: 0
“/foo.php?file=10001/fdsfsf”
2009/03/25 21:23:54 [debug] 6025#0: *398373 http finalize request: 0,
“/foo.php?file=10001/fdsfsf” 1
2009/03/25 21:23:54 [debug] 6025#0: *398373 set http keepalive handler
2009/03/25 21:23:54 [debug] 6025#0: *398373 http close request
2009/03/25 21:23:54 [debug] 6025#0: *398373 http log handler
2009/03/25 21:23:54 [debug] 6025#0: *398373 free: 0000000000000000
2009/03/25 21:23:54 [debug] 6025#0: *398373 free: 0000000015A72A60
2009/03/25 21:23:54 [debug] 6025#0: *398373 free: 0000000015A61B80,
unused: 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 free: 0000000015A56840,
unused: 1404
2009/03/25 21:23:54 [debug] 6025#0: *398373 event timer add: 13:
30000:1238041464931
2009/03/25 21:23:54 [debug] 6025#0: *398373 free: 0000000015A675F0
2009/03/25 21:23:54 [debug] 6025#0: *398373 free: 0000000015AFAC80
2009/03/25 21:23:54 [debug] 6025#0: *398373 hc free: 0000000000000000 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 hc busy: 0000000000000000 0
2009/03/25 21:23:54 [debug] 6025#0: *398373 free: 0000000015B092B0

2009/3/25 Igor S. removed_email_address@domain.invalid:


#6

On Thu, Mar 26, 2009 at 01:13:31AM -0700, Michael S. wrote:

This would be good to document. I will try to remember to add it to the wiki.

š š š š š š š š location ~ ^/files/(.*) {
š š š š š š š š š š š š fastcgi_pass 127.0.0.1:11021;
š š š š š š š š š š š š fastcgi_param šSCRIPT_FILENAME /path/to/foo.php;
š š š š š š š š š š š š fastcgi_param šQUERY_STRING š šfile=$1;
š š š š š š š š }

Is there any performance benefit here? Rewrite seems simple.

Yes, this is slighty faster.