Opened 9 years ago

Closed 7 years ago

#931 closed defect (fixed)

400 response to cyrillic domain

Reported by: ynikitenko@… Owned by:
Priority: minor Milestone:
Component: documentation Version: 1.6.x
Keywords: 400, cyrillic, Cc:
uname -a: Linux xn--80akalaancvbenpow7r.xn--p1ai 2.6.32-042stab108.1 #1 SMP Thu Apr 23 19:17:11 MSK 2015 x86_64 x86_64 x86_64 GNU/Linux
nginx -V: nginx version: nginx/1.6.3
built by gcc 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC)
TLS SNI support enabled
configure arguments: --prefix=/usr/share/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 --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_ssl_module --with-http_spdy_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_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_degradation_module --with-http_stub_status_module --with-http_perl_module --with-mail --with-mail_ssl_module --with-pcre --with-pcre-jit --with-google_perftools_module --with-debug --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' --with-ld-opt='-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E'

Description (last modified by Maxim Dounin)

I've created a cyrillic domain name and want to use nginx to serve simple html files. I get 400 when I try to open the domain. No useful information in logs is shown.

I copied nginx.conf from an ASCII domain I had, but that didn't work. Also permissions to my public_html are same. I restarted nginx, that didn't help (-s reload and also killing the process).

debug.log:

2016/03/13 09:32:20 [debug] 16419#0: accept on 0.0.0.0:80, ready: 0
2016/03/13 09:32:20 [debug] 16419#0: posix_memalign: 00007F6A8C587EB0:256 @16
2016/03/13 09:32:20 [debug] 16419#0: *16 accept: 90.154.64.230 fd:3
2016/03/13 09:32:20 [debug] 16419#0: posix_memalign: 00007F6A8C4CAA80:256 @16
2016/03/13 09:32:20 [debug] 16419#0: *16 event timer add: 3: 60000:1457876000528
2016/03/13 09:32:20 [debug] 16419#0: *16 reusable connection: 1
2016/03/13 09:32:20 [debug] 16419#0: *16 epoll add event: fd:3 op:1 ev:80002001
2016/03/13 09:32:20 [debug] 16419#0: *16 http wait request handler
2016/03/13 09:32:20 [debug] 16419#0: *16 malloc: 00007F6A8C4C6B30:1024
2016/03/13 09:32:20 [debug] 16419#0: *16 recv: fd:3 309 of 1024
2016/03/13 09:32:20 [debug] 16419#0: *16 reusable connection: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 posix_memalign: 00007F6A8C44EA00:4096 @16
2016/03/13 09:32:20 [debug] 16419#0: *16 http process request line
2016/03/13 09:32:20 [debug] 16419#0: *16 http request line: "GET / HTTP/1.1"
2016/03/13 09:32:20 [debug] 16419#0: *16 http uri: "/"
2016/03/13 09:32:20 [debug] 16419#0: *16 http args: ""
2016/03/13 09:32:20 [debug] 16419#0: *16 http exten: ""
2016/03/13 09:32:20 [debug] 16419#0: *16 posix_memalign: 00007F6A8C4A41A0:4096 @16
2016/03/13 09:32:20 [debug] 16419#0: *16 http process request header line
2016/03/13 09:32:20 [debug] 16419#0: *16 http header: "Host: xn--80aaagiydsciqb5hsf.xn--p1ai"
2016/03/13 09:32:20 [debug] 16419#0: *16 http header: "User-Agent: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"
2016/03/13 09:32:20 [debug] 16419#0: *16 http header: "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
2016/03/13 09:32:20 [debug] 16419#0: *16 http header: "Accept-Language: en-US,en;q=0.5"
2016/03/13 09:32:20 [debug] 16419#0: *16 http header: "Accept-Encoding: gzip, deflate"
2016/03/13 09:32:20 [debug] 16419#0: *16 http header: "Connection: keep-alive"
2016/03/13 09:32:20 [debug] 16419#0: *16 http header done
2016/03/13 09:32:20 [debug] 16419#0: *16 event timer del: 3: 1457876000528
2016/03/13 09:32:20 [debug] 16419#0: *16 generic phase: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 rewrite phase: 1
2016/03/13 09:32:20 [debug] 16419#0: *16 test location: "/"
2016/03/13 09:32:20 [debug] 16419#0: *16 using configuration "/"
2016/03/13 09:32:20 [debug] 16419#0: *16 http cl:-1 max:78643200
2016/03/13 09:32:20 [debug] 16419#0: *16 rewrite phase: 3
2016/03/13 09:32:20 [debug] 16419#0: *16 post rewrite phase: 4
2016/03/13 09:32:20 [debug] 16419#0: *16 generic phase: 5
2016/03/13 09:32:20 [debug] 16419#0: *16 generic phase: 6
2016/03/13 09:32:20 [debug] 16419#0: *16 generic phase: 7
2016/03/13 09:32:20 [debug] 16419#0: *16 generic phase: 8
2016/03/13 09:32:20 [debug] 16419#0: *16 access phase: 9
2016/03/13 09:32:20 [debug] 16419#0: *16 access phase: 10
2016/03/13 09:32:20 [debug] 16419#0: *16 post access phase: 11
2016/03/13 09:32:20 [debug] 16419#0: *16 try files phase: 12
2016/03/13 09:32:20 [debug] 16419#0: *16 http init upstream, client timer: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 epoll add event: fd:3 op:3 ev:80002005
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "QUERY_STRING"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "QUERY_STRING: "
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "REQUEST_METHOD"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "GET"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "REQUEST_METHOD: GET"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "CONTENT_TYPE"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "CONTENT_TYPE: "
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "CONTENT_LENGTH"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "CONTENT_LENGTH: "
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "REQUEST_URI"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "/"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "REQUEST_URI: /"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "PATH_INFO"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "/"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "PATH_INFO: /"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "DOCUMENT_ROOT"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "/usr/share/nginx/html"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "DOCUMENT_ROOT: /usr/share/nginx/html"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "SERVER_PROTOCOL"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "HTTP/1.1"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "SERVER_PROTOCOL: HTTP/1.1"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "REQUEST_SCHEME"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "http"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "REQUEST_SCHEME: http"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: ""
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "REMOTE_ADDR"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "90.154.64.230"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "REMOTE_ADDR: 90.154.64.230"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "REMOTE_PORT"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "13760"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "REMOTE_PORT: 13760"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "SERVER_PORT"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "80"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "SERVER_PORT: 80"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script copy: "SERVER_NAME"
2016/03/13 09:32:20 [debug] 16419#0: *16 http script var: "арсенияникитенко.рф"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "SERVER_NAME: арсенияникитенко.рф"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "HTTP_HOST: xn--80aaagiydsciqb5hsf.xn--p1ai"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "HTTP_USER_AGENT: Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "HTTP_ACCEPT: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.5"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "HTTP_ACCEPT_ENCODING: gzip, deflate"
2016/03/13 09:32:20 [debug] 16419#0: *16 uwsgi param: "HTTP_CONNECTION: keep-alive"
2016/03/13 09:32:20 [debug] 16419#0: *16 http cleanup add: 00007F6A8C44F910
2016/03/13 09:32:20 [debug] 16419#0: *16 get rr peer, try: 1
2016/03/13 09:32:20 [debug] 16419#0: *16 socket 4
2016/03/13 09:32:20 [debug] 16419#0: *16 epoll add connection: fd:4 ev:80002005
2016/03/13 09:32:20 [debug] 16419#0: *16 connect to unix:///home/nikitenko/arsenia/arsenia.sock, fd:4 #17
2016/03/13 09:32:20 [debug] 16419#0: *16 connected
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream connect: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 posix_memalign: 00007F6A8C4C5170:128 @16
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream send request
2016/03/13 09:32:20 [debug] 16419#0: *16 chain writer buf fl:0 s:630
2016/03/13 09:32:20 [debug] 16419#0: *16 chain writer in: 00007F6A8C44F948
2016/03/13 09:32:20 [debug] 16419#0: *16 writev: 630
2016/03/13 09:32:20 [debug] 16419#0: *16 chain writer out: 0000000000000000
2016/03/13 09:32:20 [debug] 16419#0: *16 event timer add: 4: 60000:1457876000528
2016/03/13 09:32:20 [debug] 16419#0: *16 http finalize request: -4, "/?" a:1, c:2
2016/03/13 09:32:20 [debug] 16419#0: *16 http request count:2 blk:0
2016/03/13 09:32:20 [debug] 16419#0: *16 http run request: "/?"
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream check client, write event:1, "/"
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream recv(): -1 (11: Resource temporarily unavailable)
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream request: "/?"
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream dummy handler
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream request: "/?"
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream process header
2016/03/13 09:32:20 [debug] 16419#0: *16 malloc: 00007F6A8C4B0350:4096
2016/03/13 09:32:20 [debug] 16419#0: *16 recv: fd:4 108 of 4096
2016/03/13 09:32:20 [debug] 16419#0: *16 http uwsgi status 400 "400 BAD REQUEST"
2016/03/13 09:32:20 [debug] 16419#0: *16 http uwsgi header: "X-Frame-Options: SAMEORIGIN"
2016/03/13 09:32:20 [debug] 16419#0: *16 http uwsgi header: "Content-Type: text/html"
2016/03/13 09:32:20 [debug] 16419#0: *16 http uwsgi header done
2016/03/13 09:32:20 [debug] 16419#0: *16 xslt filter header
2016/03/13 09:32:20 [debug] 16419#0: *16 charset: "" > "utf-8"
2016/03/13 09:32:20 [debug] 16419#0: *16 HTTP/1.1 400 BAD REQUEST
2016/03/13 09:32:20 [debug] 16419#0: *16 write new buf t:1 f:0 00007F6A8C4A4D78, pos 00007F6A8C4A4D78, size: 207 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 http write filter: l:0 f:0 s:207
2016/03/13 09:32:20 [debug] 16419#0: *16 http cacheable: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream process upstream
2016/03/13 09:32:20 [debug] 16419#0: *16 pipe read upstream: 1
2016/03/13 09:32:20 [debug] 16419#0: *16 pipe preread: 26
2016/03/13 09:32:20 [debug] 16419#0: *16 readv: 1:3988
2016/03/13 09:32:20 [debug] 16419#0: *16 pipe recv chain: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 pipe buf free s:0 t:1 f:0 00007F6A8C4B0350, pos 00007F6A8C4B03A2, size: 26 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 pipe length: -1
2016/03/13 09:32:20 [debug] 16419#0: *16 input buf #0
2016/03/13 09:32:20 [debug] 16419#0: *16 pipe write downstream: 1
2016/03/13 09:32:20 [debug] 16419#0: *16 pipe write downstream flush in
2016/03/13 09:32:20 [debug] 16419#0: *16 http output filter "/?"
2016/03/13 09:32:20 [debug] 16419#0: *16 http copy filter: "/?"
2016/03/13 09:32:20 [debug] 16419#0: *16 image filter
2016/03/13 09:32:20 [debug] 16419#0: *16 xslt filter body
2016/03/13 09:32:20 [debug] 16419#0: *16 http postpone filter "/?" 00007F6A8C4A4F48
2016/03/13 09:32:20 [debug] 16419#0: *16 http chunk: 26
2016/03/13 09:32:20 [debug] 16419#0: *16 write old buf t:1 f:0 00007F6A8C4A4D78, pos 00007F6A8C4A4D78, size: 207 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 write new buf t:1 f:0 00007F6A8C4A5088, pos 00007F6A8C4A5088, size: 4 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 write new buf t:1 f:0 00007F6A8C4B0350, pos 00007F6A8C4B03A2, size: 26 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 write new buf t:0 f:0 0000000000000000, pos 00007F6A8BE9795D, size: 2 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 http write filter: l:0 f:0 s:239
2016/03/13 09:32:20 [debug] 16419#0: *16 http copy filter: 0 "/?"
2016/03/13 09:32:20 [debug] 16419#0: *16 pipe write downstream done
2016/03/13 09:32:20 [debug] 16419#0: *16 event timer: 4, old: 1457876000528, new: 1457876000531
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream exit: 0000000000000000
2016/03/13 09:32:20 [debug] 16419#0: *16 finalize http upstream request: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 finalize http uwsgi request
2016/03/13 09:32:20 [debug] 16419#0: *16 free rr peer 1 0
2016/03/13 09:32:20 [debug] 16419#0: *16 close http upstream connection: 4
2016/03/13 09:32:20 [debug] 16419#0: *16 free: 00007F6A8C4C5170, unused: 48
2016/03/13 09:32:20 [debug] 16419#0: *16 event timer del: 4: 1457876000528
2016/03/13 09:32:20 [debug] 16419#0: *16 reusable connection: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 http upstream temp fd: -1
2016/03/13 09:32:20 [debug] 16419#0: *16 http output filter "/?"
2016/03/13 09:32:20 [debug] 16419#0: *16 http copy filter: "/?"
2016/03/13 09:32:20 [debug] 16419#0: *16 image filter
2016/03/13 09:32:20 [debug] 16419#0: *16 xslt filter body
2016/03/13 09:32:20 [debug] 16419#0: *16 http postpone filter "/?" 00007FFF84A55820
2016/03/13 09:32:20 [debug] 16419#0: *16 http chunk: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 posix_memalign: 00007F6A8C4C6FF0:4096 @16
2016/03/13 09:32:20 [debug] 16419#0: *16 write old buf t:1 f:0 00007F6A8C4A4D78, pos 00007F6A8C4A4D78, size: 207 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 write old buf t:1 f:0 00007F6A8C4A5088, pos 00007F6A8C4A5088, size: 4 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 write old buf t:1 f:0 00007F6A8C4B0350, pos 00007F6A8C4B03A2, size: 26 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 write old buf t:0 f:0 0000000000000000, pos 00007F6A8BE9795D, size: 2 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 write new buf t:0 f:0 0000000000000000, pos 00007F6A8BE9795A, size: 5 file: 0, size: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 http write filter: l:1 f:0 s:244
2016/03/13 09:32:20 [debug] 16419#0: *16 http write filter limit 0
2016/03/13 09:32:20 [debug] 16419#0: *16 writev: 244
2016/03/13 09:32:20 [debug] 16419#0: *16 http write filter 0000000000000000
2016/03/13 09:32:20 [debug] 16419#0: *16 http copy filter: 0 "/?"
2016/03/13 09:32:20 [debug] 16419#0: *16 http finalize request: 0, "/?" a:1, c:1
2016/03/13 09:32:20 [debug] 16419#0: *16 set http keepalive handler
2016/03/13 09:32:20 [debug] 16419#0: *16 http close request
2016/03/13 09:32:20 [debug] 16419#0: *16 http log handler
2016/03/13 09:32:20 [debug] 16419#0: *16 free: 00007F6A8C4B0350
2016/03/13 09:32:20 [debug] 16419#0: *16 free: 00007F6A8C44EA00, unused: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 free: 00007F6A8C4A41A0, unused: 0
2016/03/13 09:32:20 [debug] 16419#0: *16 free: 00007F6A8C4C6FF0, unused: 3791
2016/03/13 09:32:20 [debug] 16419#0: *16 free: 00007F6A8C4C6B30
2016/03/13 09:32:20 [debug] 16419#0: *16 hc free: 0000000000000000 0
2016/03/13 09:32:20 [debug] 16419#0: *16 hc busy: 0000000000000000 0
2016/03/13 09:32:20 [debug] 16419#0: *16 tcp_nodelay
2016/03/13 09:32:20 [debug] 16419#0: *16 reusable connection: 1
2016/03/13 09:32:20 [debug] 16419#0: *16 event timer add: 3: 65000:1457876005531
2016/03/13 09:32:20 [debug] 16419#0: *16 post event 00007F6A8C45FA50
2016/03/13 09:32:20 [debug] 16419#0: *16 delete posted event 00007F6A8C45FA50
2016/03/13 09:32:20 [debug] 16419#0: *16 http keepalive handler
2016/03/13 09:32:20 [debug] 16419#0: *16 malloc: 00007F6A8C4C6B30:1024
2016/03/13 09:32:20 [debug] 16419#0: *16 recv: fd:3 -1 of 1024
2016/03/13 09:32:20 [debug] 16419#0: *16 recv() not ready (11: Resource temporarily unavailable)
2016/03/13 09:32:20 [debug] 16419#0: *16 free: 00007F6A8C4C6B30

more error.log

2016/03/13 09:18:04 [notice] 16418#0: signal process started

(note that was some time before my attempt to connect).

I know that 400 may be connected with cookies, but I used wget, curl, Opera and Firefox to open that page with the same results.

My nginx.conf:

server {
    server_name людмилавахнина.рф;
    charset     utf-8;
    #source_charset     utf-8;
    error_log /var/log/nginx/lvahnina_debug.log debug;
    error_log /var/log/nginx/lvahnina_error.log info;
    # these two files are empty. No errors.
    root /home/nikitenko/lvahnina/public_html;

    location = / {
        try_files /index.html =404;
    }

    location = /index      { return 404; }

    location / {
        try_files $uri.html =404;
        #try_files $uri.html;
    }
}

I don't have much memory on the machine, but probably that should be enough,

$ free
              total        used        free      shared  buff/cache   available
Mem:         262144      136308       19444        5756      106392       46756
Swap:             0           0           0

Change History (7)

comment:1 by Maxim Dounin, 9 years ago

Description: modified (diff)
Resolution: invalid
Status: newclosed

The server_name in the configuration snippet you've provided is wrong. You should use punycode-encoded name instead, xn--80aaagiydsciqb5hsf.xn--p1ai (as seen in the Host header of the HTTP request).

This is likely what causes your other issues. Note that according to the log provided the error is returned no by nginx but by your backend server. Likely this backend is configured in the default server{} block - as no matching server_name is found, the default server{} block is used by nginx to process the request.

comment:2 by ynikitenko@…, 9 years ago

Thank you. But I use another cyrillic name as UTF-8 on the same system (but with django), and it works fine. I'll see whether your suggestion will work.

in reply to:  2 comment:3 by Valentin V. Bartenev, 9 years ago

Replying to ynikitenko@…:

Thank you. But I use another cyrillic name as UTF-8 on the same system (but with django), and it works fine. I'll see whether your suggestion will work.

I guess that "another cyrillic name" is used in the default server block. See the documentation for details.

comment:4 by ynikitenko@…, 9 years ago

Many thanks for the explanation! Now it works. However, it seems that there is nothing on punicode in nginx docs: see https://www.google.ru/search?q=+punicode+site:nginx.org/en/docs
Will you propose an improvement for the documentation or should I do that?

The other site works fine, its nginx conf is the following (it's not a default server block, it's from sites_available/):

# the upstream component nginx needs to connect to
upstream django {
    server unix:///home/nikitenko/arsenia/arsenia.sock; # for a file socket
    # server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}

# configuration of the server
server {
    # the port your site will be served on
    #listen      8000;
    # the domain name it will serve for
    server_name арсенияникитенко.рф; 
    charset     utf-8;
    #source_charset     utf-8;
    error_log /var/log/nginx/debug.log debug;
    error_log /var/log/nginx/arsenia_error.log;

    # max upload size
    client_max_body_size 75M;   # adjust to taste

    # Django media
    # note: on localhost it's called upload/, so change its name to медиа/ !
    location /медиа/ {
        root /home/nikitenko/arsenia;  # your Django project's media files - 
amend as required
        # rewrite ^(.+)/+$ $1 permanent;
        try_files $uri =404;
        #alias /home/nikitenko/arsenia/upload;  # your Django project's media
 files - amend as required
    }

    location /static {
        # rewrite ^(.+)/+$ $1 permanent;
        root /home/nikitenko/arsenia;  # your Django project's media files - 
amend as required
        try_files $uri =404;
    }

    # Finally, send all non-media requests to the Django server.
    location / {
        uwsgi_pass  django;
        include     /home/nikitenko/arsenia/uwsgi_params; # the uwsgi_params 
file you installed
    }
}

I think that if one config works fine and another doesn't than that is probably a bug (maybe both shoudn't work or both should work).

comment:5 by ynikitenko@…, 9 years ago

Resolution: invalid
Status: closedreopened

Dear nginx programmers, I suggest to improve the documentation and make the behaviour of nginx prohibitive with non-punicode domains.
Please read the previous comment for details.

comment:6 by Maxim Dounin, 8 years ago

Component: nginx-coredocumentation

comment:7 by Yaroslav Zhuravlev, 7 years ago

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.