Forum: NGINX glype 404 error nginx/0.7.59+ fastcgi

Posted by zereshk (Guest)
on 2010-02-05 06:34
(Received via mailing list)
Hi nginx gurus,
I have this weird problem:

After following carefully this tutorial:
http://www.linuxspace.org/archives/1576

I could get my glype script page, but it does not work: The nginx gives 
a '404 Not Found' whenever I try to get a url through glype proxy.

You can see the problem here:
http://www.bigheid.info/

Here is my nginx.conf


#user
user  www;
#numbers of worker processes
worker_processes  2;

#path to nginx.pid
pid     /home/www/bigheid.info/nginx.pid;

events
{
    worker_connections  1024;
}

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

    #log format
    log_format  main  '$remote_addr - $remote_user [$time_local] 
"$request" '
                     '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';

    sendfile        on;
    tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #compression
    gzip on;
    gzip_min_length  1100;
    gzip_buffers     4 8k;
    gzip_types       text/plain;
    gzip_comp_level 3;
    gzip_proxied any;

#configure virtual server
server {

        #port
        listen       80;

        #server name
        server_name  localhost;

        #coding
        charset utf-8;

       #main directory where is site
  root /home/www/bigheid.info/public;

        #LOGS
  #------------------------------------------------------------------
        access_log  /home/www/bigheid.info/log/localhost.access.log;
        error_log /home/www/bigheid.info/log/error.log;
        access_log  /home/www/bigheid.info/log/access.log combined;
        #------------------------------------------------------------------
        #location
        location / {
            root   /home/www/bigheid.info/public;
            index  index.html index.htm index.php;
        }

        error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }



        # pass the PHP scripts to FastCGI server listening on 
127.0.0.1:9000
        #PHP + CGI + some parametrs
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME 
/home/www/bigheid.info/public/$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_param  QUERY_STRING     $query_string;
            fastcgi_param  REQUEST_METHOD   $request_method;
            fastcgi_param  CONTENT_TYPE     $content_type;
            fastcgi_param  CONTENT_LENGTH   $content_length;

        }



And my  fastcgi_params:



fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
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/$nginx_version;

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;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;


Let me know if you need to know my other configurations.

Actually, nginx is very little known among proxy community (take a look 
at proxy.org and you'll see).

Your clues are very much appreciated. I promise to spread the word if 
you could solve this nasty problem.
Thank you,
Zereshk

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,50781,50781#msg-50781
Posted by Rob Schultz (schultz)
on 2010-02-05 14:58
(Received via mailing list)
Go into your glype admin page and turn off Path info URL encoding
option or setup Path info via 
http://wiki.nginx.org/NginxHttpFcgiModule#fastcgi_split_path_info

Sent from my iPhone
Posted by zereshk (Guest)
on 2010-02-06 06:33
(Received via mailing list)
Thanks Rob, for your reply.
I turn off Path info URL encoding option on glype, but it made glype 
dysfunctional. Then, I  tried to cofigure nginx-0.8.33 
--with-fastcgi_split_path_info but I receive


./configure: error: invalid option "--with-fastcgi_split_path_info"


I really appreciate it if you can give me further instructions, ideally 
a sample ./cinfigure and nginx.conf file.

Cheers

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,50781,51235#msg-51235
Posted by Rob Schultz (schultz)
on 2010-02-06 09:54
(Received via mailing list)
fastcgi_path_info is built into the FastCGI module. So you just have to 
add the configuration settings.

How did it make Glype dysfunctional? i had the reverse problem and that 
was when i attempted to use Path info it would always redirect to the 
wrong location.
it works fine for me using typical php location block with 
fastcgi_params.

Rob
Posted by zereshk (Guest)
on 2010-02-06 10:22
(Received via mailing list)
Well, by dysfunctional, I mean when I uncheck the Encode URL option or 
make the $CONFIG['path_info_urls'] = false in the setting, glype does 
not render urls anymore. The 'Go' Page becomes Idle.

I am still straggling with the issue. If you could you please post some 
samples of  nginx.conf and a vhost it would be a great help, because I 
am really noob about nginx and Linux in general.

Cheers

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,50781,51299#msg-51299
Posted by Rob Schultz (schultz)
on 2010-02-06 19:24
(Received via mailing list)
i just use a standard php config location block. But you can see the 
main details of my config at 
http://pastie.org/private/75qwumypphpjidroocqa
*note that i have glyte setup as a subdirectory on my sever so you 
access it via http://domain.com/glype/

V/r,
Rob
Posted by zereshk (Guest)
on 2010-02-07 11:50
(Received via mailing list)
Thanks so muchRob. Following your helpful config files and this nice, 
noob-friendly tutorial:

http://guvnr.com/web/web-dev/install-nginx-not-apache/

at last I could manage to get nginx running glype.

I put my working config files here just in case they can help others to 
bang their head on the issue (use Rob's for fastcgi_params):

nginx.conf

user www-data www-data;
worker_processes  4;

events {
    worker_connections  1024;
}

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

    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     off;
    keepalive_timeout  5;

    gzip  on;
    gzip_comp_level 2;
    gzip_proxied any;
    gzip_types      text/plain text/css application/x-javascript 
text/xml application/xml $

     include /usr/local/nginx/sites-enabled/*;
     include         /usr/local/nginx/conf/fastcgi_params;

}


vhost1 (example.com)

server {
            listen   80;
            server_name  www.example.com;
            rewrite ^/(.*) http://example.com/$1 permanent;
       }

server {
            listen   80;
            server_name example.com;
            access_log /home/public_html/example.com/log/access.log;
            error_log /home/public_html/example.com/log/error.log;


                        root   /home/public_html/example.com/public/;
                        index  index.html index.php;
                        autoindex on;

            # pass the PHP scripts to FastCGI server listening on 
127.0.0.1:9000

             location ~ ^.+\.php$    {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
                        }

                location ~* ^.+\.(jpg|jpeg|gif|png)$ {
                        access_log   off;
                        expires      30d;
                }

       }


As you see these are very basic files, but it took me one week to get 
them up and running.

Another thing worth noting is that when I used a tweaked version of 
Glype which happened to lacked main.js, I encountered 404 error (I guess 
it was the main reason at the first place!) However, apache2 did not 
complaint about  the lacking file it and runs the very same tweaked 
script.

Now down to optimisation. Hope it does not suffer from bloating 
behaviours of apache :)

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,50781,51662#msg-51662
Posted by zereshk (Guest)
on 2010-02-07 11:54
(Received via mailing list)
BTW, any ideas to tweak the nginx configs to have the best performance 
on a 1GB RAM but busy VPS running several glype proxy sites?

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,50781,51664#msg-51664
Posted by Rob Schultz (schultz)
on 2010-02-07 18:27
(Received via mailing list)
If you have store cookies on the server turned off then you might need 
to increase 
http://wiki.nginx.org/NginxHttpCoreModule#client_header_buffer_size or 
after a little while of browsing and the cookie requests gets larger 
then 1k you will start receiving some bad request errors from NginX. The 
other solution is just to store them on the server if you can.

Also if you get lots of large pages you can tweak 
http://wiki.nginx.org/NginxHttpFcgiModule#fastcgi_buffers to prevent 
them from being buffered to disk potentially causing high IO.

v/r,
Rob
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.