﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
787	Nginx not able to properly handle charater-set encoding	stackoverflow.com/users/5159092/rajdeep-bhattacharya		"We are trying to forward some arabic character in the uri. The flow of request is :-

Nginx (Proxy) -> Tomcat Banckend

The url is something like http://x1.example.com/v1/test/حـرآمے^_^بـنـآت.
Now in the output of the nginx log I am getting something like this :-

10.31.0.250 - - [14/Sep/2015:12:12:24 +0000]""PUT /v1/test/%D8%AD%D9%80%D8%B1%D8%A2%D9%85%DB%92%5E_%5E%D8%A8%D9%80%D9%86%D9%80%D8%A2%D8%AA HTTP/1.1"" 405 568 ""-"" ""Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36"" - Time: 0.169

In the backend tomcat the logs is something like this :-

SEVERE: Servlet.service() for servlet CXFServlet threw exception
java.lang.IllegalArgumentException: Illegal character in path at index 53: http://badges_cluster/badges-service-web/v1/badge/Ø­ÙØ±Ø¢ÙÛ^_^Ø¨ÙÙÙØ¢Øª
at java.net.URI.create(URI.java:859)

And in the response code it throws a 500 exception. The applicaiton is not able to understand the request as they are all junk charcters for it. Now we have enabled utf-8 character encoding in the nginx.conf

http {
    include       /etc/nginx/mime.types;
    charset utf-8;

    access_log  /var/log/nginx/access.log;
    error_log   /var/log/nginx/error.log;

    ignore_invalid_headers      on;
#    client_header_timeout      1;
    client_header_timeout       10;
#    client_body_timeout        2;
    client_body_timeout         10;
    server_tokens       off;
    sendfile            on;
    tcp_nodelay         on;
    tcp_nopush          on;
#    keepalive_timeout   0;
    keepalive_timeout    0;

    gzip  on;
    gzip_disable ""MSIE [1-6]\.(?!.*SV1)"";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    }

But still doesn't help.
"	defect	closed	major		nginx-core	1.8.x	invalid			Linux ngxint00 3.2.0-0.bpo.4-amd64 #1 SMP Debian 3.2.46-1+deb7u1~bpo60+1 x86_64 GNU/Linux	"nginx version: nginx/1.8.0
built by gcc 4.4.5 (Debian 4.4.5-8) 
built with OpenSSL 0.9.8o 01 Jun 2010
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-cc-opt='-g -O2 -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt=-Wl,--as-needed --with-ipv6"
