nginx – PNG-Dateien laufen über FastCGI?

nginx – PNG-Dateien laufen über FastCGI?

Als ich den folgenden Fehler sah, bemerkte ich, dass die PNG-Datei anscheinend durch FastCGI geht. Ich kenne mich mit Nginx nicht so gut aus, aber es scheint mir falsch zu sein.

Ich habe versucht, PHP-Code in eine PNG-Datei einzufügen, und er wurde nicht ausgeführt.

[warn] 2507#0: *35744 an upstream response is buffered to a temporary file /www/wdlinux/nginx-1.8.1/fastcgi_temp/9/60/0000012609 while reading upstream, client: 888.888.888.888, server: example.com, request: "GET /images/25.png HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-55-cgi.sock:", host: "example.com", referrer: "http://example.com/app.php"

Gibt es hier ein Problem oder ist das nur meine Naivität? Ich hätte gedacht, dass Nginx nur statische Dateien sendet und sie nicht über CGI-bezogene Verfahren sendet.

Einige möglicherweise zugehörige Dateien:

# nginx conf conf/nginx.conf
# Created by http://www.wdlinux.cn
# Last Updated 2010.06.01
user  www www;
worker_processes  3;
error_log  logs/error.log  notice;
pid        logs/nginx.pid;
worker_rlimit_nofile 5120;
events {
    use epoll;
    worker_connections  5120;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    server_names_hash_bucket_size 128;
    client_header_buffer_size 256k;
    large_client_header_buffers 8 64k;
    client_max_body_size 100m;
    limit_conn_zone $binary_remote_addr zone=one:32k;

    sendfile        on;
    tcp_nopush     on;

    keepalive_timeout  60;
    tcp_nodelay on;

    gzip  on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;

    log_format  wwwlogs  '$remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
    #include default.conf;
    include vhost/*.conf;
}

naproxy.conf

proxy_connect_timeout 30s;
proxy_send_timeout   90;
proxy_read_timeout   90;
proxy_buffer_size    32k;
proxy_buffers     4 32k;
proxy_busy_buffers_size 64k;
proxy_redirect     off;
proxy_hide_header  Vary;
proxy_set_header   Accept-Encoding '';
proxy_set_header   Host   $host;
proxy_set_header   Referer $http_referer;
proxy_set_header   Cookie $http_cookie;
proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

Vhost-Datei

server {
        listen       80;
        root /mnt/web/example/public_html;
        server_name example.com example.com;
        index  index.html index.php index.htm;
        error_page  400 /errpage/400.html;
        error_page  403 /errpage/403.html;
        error_page  404 /errpage/404.html;
        error_page  503 /errpage/503.html;
        location ~ \.php(.*)$ {
                fastcgi_pass  unix:/tmp/php-55-cgi.sock;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $DOCUMENT_ROOT$fastcgi_script_name;
                fastcgi_param PATH_INFO $2;
                include fcgi.conf;
        }
        location ~ /\.ht {
                deny  all;
        }
        location / {
                 try_files $uri $uri/ /?$args;
        }
}

Wenn weitere Dateien benötigt werden, werde ich sie hinzufügen. Vielen Dank!

Antwort1

Wenn Sie keine Datei /mnt/web/example/public_html/images/25.pngin Ihrem System haben, sendet nginx die Anforderung http://example.com/images/25.pngan den PHP-Prozessor.

Dieses Verhalten wird in der try_files $uri $uri/ /?$args;Zeile angegeben.

verwandte Informationen