BUG? Can not fully show the big size image.
Igor Sysoev
is at rambler-co.ru
Wed Jun 3 15:56:48 MSD 2009
On Wed, Jun 03, 2009 at 06:06:16AM -0400, Meng wrote:
> Hi all,
>
> I'm new to this community.
> I did days of research to setup Nginx + PHP CGI + MySQL for a website. The problem is that client browser can not show the the full image of big size. When I refresh the browser, I can get random results of the image showing. Sometime get partial image showing, sometimes get full image showing. But small images(about 20k bytes) show perfectly.
> My platform is Intel quad cores CPU x 1, 4G memory, Intel Gigabyte NIC. CentOS 5.3 with latest updates. OS bundled PHP 5.1.6, Nginx 0.7.59 compiled from source.
> The most strange thing is that the same website code works perfectly on another platform. This platform has 1 Celeron CPU(single core), 768M memory and 100M NIC. The software are Fedora 9, PHP 5.2.6, Nginx 0.7.59 compiled from source.
> And moreover, same website code works on Apache + PHP + MySQL.
> I did a lot of test on the Intel quad cores platform but get no result, such as
> Try different web browser IE 6 and firefox 3,
> Tried a lot of configuration for nginx.conf, php.ini. Such as increases the buffer size.
> Compiled and installed PHP 5.2.9
> Compiled and installed kernel 2.6.28.10
> ...
>
> My test code is
>
>
>
> <?php
> header("Content-type: image/jpeg");
> readfile("images/untitled.jpg");
> ?>
>
>
>
> This code does not work.
>
> But html code like below works.
>
>
>
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>
>
>
> ????? ?? ???????????????????????
>
> <!--
> *{ margin:0px; padding:0px; border:0px;}
> #main{ width:100%;}
> -->
>
>
>
>
>
>
>
>
>
>
>
>
>
> My nginx.conf is
>
>
>
> user apache apache;
> worker_processes 4;
>
> error_log /var/log/nginx/error.log;
> #error_log /var/log/nginx/error.log notice;
> #error_log /var/log/nginx/error.log info;
>
> pid /var/run/nginx.pid;
>
> events {
> use epoll;
> worker_connections 1024;
> }
>
> http {
> include mime.types;
> default_type application/octet-stream;
>
> log_format main '$remote_addr - $remote_user [$time_local] $request '
> '"$status" $body_bytes_sent "$http_referer" '
> '"$http_user_agent" "$http_x_forwarded_for"';
>
> connection_pool_size 256;
> client_header_buffer_size 1k;
> large_client_header_buffers 4 4k;
> client_max_body_size 10M;
> client_body_buffer_size 256k;
>
> access_log /var/log/nginx/access.log main;
>
> client_header_timeout 3m;
> client_body_timeout 3m;
> send_timeout 3m;
>
> sendfile on;
> tcp_nopush on;
> tcp_nodelay off;
> server_names_hash_bucket_size 128;
>
> keepalive_timeout 65;
>
> gzip on;
> gzip_min_length 1100;
> gzip_buffers 4 8k;
> gzip_types text/plain application/javascript text/css text/xml;
>
> output_buffers 1 32k;
> postpone_output 1460;
>
> client_body_in_single_buffer on;
> #???
> #client_body_in_file_only clean;
> fastcgi_connect_timeout 300;
> fastcgi_send_timeout 300;
> fastcgi_read_timeout 300;
> fastcgi_buffer_size 64k;
> fastcgi_buffers 4 64k;
> fastcgi_busy_buffers_size 128k;
> fastcgi_temp_file_write_size 128k;
>
> # Load config files from the /etc/nginx/conf.d directory
> include /etc/nginx/conf.d/*.conf;
>
> #
> # The default server
> #
> server {
> listen 80;
> # server_name _;
> server_name localhost;
>
> #charset koi8-r;
>
> #access_log logs/host.access.log main;
>
> location / {
> root /var/www/html;
> index index.html index.htm;
> }
>
> error_page 404 /404.html;
> location = /404.html {
> root /usr/share/nginx/html;
> }
>
> error_page 500 502 503 504 /50x.html;
> location = /50x.html {
> root /usr/share/nginx/html;
> }
>
> }
>
> server {
> listen 80;
> server_name 192.168.0.30;
> access_log /var/log/nginx/access_30.log;
> error_log /var/log/nginx/error_30.log;
> root /var/www/html/ttl;
> location / {
> index index.php;
> #If file not found, redirect to Zend handling, we can remove the (if) here and go directly rewrite
> if (!-f $request_filename){
> rewrite ^/(.+)$ /index.php?$1& last;
> break;
> }
>
> # limit_conn one 1;
> #limit_rate 200k;
> }
>
> location ~* ^.+.(js|ico|pdf|css|gif|jpg|jpeg|png)$ {
> access_log off;
> expires 1d;
> }
>
> location ~ \.php$ {
> fastcgi_pass 127.0.0.1:9000;
> # fastcgi_pass unix:/tmp/phpcgi.sock;
> fastcgi_index index.php;
> fastcgi_param SCRIPT_FILENAME /var/www/html/ttl$fastcgi_script_name;
> include fastcgi_params;
> # fastcgi_pass_request_body off;
> }
>
> }
>
> server {
> listen 80;
> server_name z.f;
> access_log /var/log/nginx/access_zf.log;
> error_log /var/log/nginx/error_zf.log;
> root /var/www/html/ttl;
> location / {
> index index.php;
> #If file not found, redirect to Zend handling, we can remove the (if) here and go directly rewrite
> if (!-f $request_filename){
> rewrite ^/(.+)$ /index.php?$1& last;
> }
>
> }
> location ~ \.php$ {
> fastcgi_pass 127.0.0.1:9000;
> # fastcgi_pass unix:/tmp/phpcgi.sock;
> fastcgi_index index.php;
> fastcgi_param SCRIPT_FILENAME /var/www/html/ttl$fastcgi_script_name;
> include fastcgi_params;
> }
> }
> }
>
>
>
> spawn php-cgi script:
>
> /usr/local/bin/spawn-fcgi -u apache -g apache -f /usr/bin/php-cgi -a 127.0.0.1 -p 9000 -C 20 -- /usr/bin/php-cgi -c /etc
>
> The screen shot of the problem is here:
> http://www.eglx.com/J/bug.JPG
>
>
> I also searched Google for the same problem reported, but got no resolution. My problem seems very rare. Anyone has any ideas?
Have you looked in error_log, the primary place to look for ?
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list