Salut

J'utilise nginx et rails pour mon site dont les url contiennent des lettres 
georgien ie განცხადებები, ce qui donne qqch du genre 
http://gancxadebebi.ge/ka/%E1%83%92%E1%83%90%E1%83%9C%E1%83%AA%E1%83%AE%E1%83%90%E1%83%93%E1%83%94%E1%83%91%E1%83%94%E1%83%91%E1%83%98

Dans l'ensemble ca fonctionne tres bien, mais parfois je recois de requete 
avec des url tronquée ie
1 - 
http://gancxadebebi.ge/ka/%E1%83%92%E1%83%90%E1%83%9C%E1%83%AA%E1%83%AE%E1%83%90%E1%83%93%E1%83%94%E1%83%91%E1%83%94%E1%83%91%E1%83%9
(comme vous pouvez le voir, il manque qqch apres %9)
ou
2 - 
http://gancxadebebi.ge/ka/%E1%83%92%E1%83%90%E1%83%9C%E1%83%AA%E1%83%AE%E1%83%90%E1%83%93%E1%83%94%E1%83%91%E1%83%94%E1%83%91%E1%83%98?mc=mini+aipadi&search=%E1%83%AB%E1%83%98%E1%83%94%E1%83%91%E1%83%9

J'ai reussi a géré ce type de pb lorsqu'il n'y a pas de parametre get (1er 
exemple d'url) et de faire ds ce cas une redirection vers /
dans ce cas, une ligne est ajouté au log nging error.log
2013/09/24 00:46:53 [alert] 63547#0: *19359227 pcre_exec() failed: -10 on 
"/ka/განცხადებებ�" using "", client: aa.bb.cc.dd, server: gancxadebebi.ge, 
request: "GET 
/ka/%E1%83%92%E1%83%90%E1%83%9C%E1%83%AA%E1%83%AE%E1%83%90%E1%83%93%E1%83%94%E1%83%91%E1%83%94%E1%83%91%E1%8
 
HTTP/1.1", host: "gancxadebebi.ge"

mais pour le second type d'url, avec des parametre get tronqués, je 
n'arrive pas à le géré, ce qui genere une page "400 bad request"
et ces requetes ajoutent une ligne au log nginx access.log
aa.bb.cc.dd - - [24/Sep/2013:00:48:47 +0200] "GET 
/ka/%E1%83%92%E1%83%90%E1%83%9C%E1%83%AA%E1%83%AE%E1%83%90%E1%83%93%E1%83%94%E1%83%91%E1%83%94%E1%83%91%E1%83%98?mc=mini+aipadi&search=%E1%83%AB%E1%83%98%E1%83%94%E1%83%91%E1%83%
 
HTTP/1.1" 400 5 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 
(KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36"

cela veut il dire que nginx arrive a traiter la requete et que c'est 
ensuite rails qui ne peut la gérer ?

Je ne sais pas si le probleme vient de rails ou de ngninx. Pour le 1er type 
d'url, j'ai resolu le pb dans la conf nginx

voici une partie de ma conf nginx

    access_log /var/log/nginx/gancx.access.log;
    error_log /var/log/nginx/gancx.error.log;

    client_body_in_file_only clean;
    client_body_buffer_size 32K;
    charset UTF-8;
    source_charset UTF-8;
    client_max_body_size 300M;



    error_page  400 404         = @notfound;
    error_page  500 502 504 = @server_error;
    error_page  503         = @maintenance;

    location @notfound {
      rewrite ^(.*)$ $scheme://$host permanent;
    }

    location @server_error {
        rewrite ^(.*)$ $scheme://$host permanent;
    }

    location @maintenance {
        rewrite ^(.*)$ $scheme://$host permanent;
    }
    sendfile on;
    send_timeout 300s;

    location / {
        proxy_pass http://gancx;
        proxy_redirect off;

        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        charset UTF-8;
        client_max_body_size 7m;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
    }

merci pour votre aide

-- 
-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse [email protected].
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .

Répondre à