nginx загрузка файлов картинок с русскими именами с пристыкованным ;jsessionid

akartkam nginx-forum на forum.nginx.org
Ср Май 10 11:49:52 UTC 2017


Добрый день. Столкнулся с такой проблемой. На ubuntu сервере совместно
работают tomcat8 и nginx 1.10. Второй проксирует запросы с первому. nginx
настроен так : 

server {
  listen 80;
  server_name forpostnn.ru;
  charset utf-8;
  root /opt/tomcat/webapps/inShop;

  location ~* ^(/images/|/releated/).+\.(jpg|jpeg|gif|png|pdf)$  {
        root   /usr/share/inShop/webcontent;
        expires 30d;
        add_header Pragma public;
        add_header Cache-Control "public";
        rewrite "^(.*);jsessionid=(.*)$" $1 permanent;
  }


  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8080/;

  }
}

Проблема в том, что так получилось, что в папке со статическим контентом
оказались картинки с русскими именами. При первом открытии окна в браузере
(когда еще нет куков и tomcat пристыковывает ко всем urlам ;jsessionid) ,
nginx не грузит картинки в именах которых есть русские буквы(естественно они
url rwrited), говорит , 404. При чем, что  интересно, если принудительно
открыть картинку в браузере без ;jsessionid , то все ок. Так же никаких
проблем не возникает и с картинками, в названии которых нет русских букв.

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,274123,274123#msg-274123



Подробная информация о списке рассылки nginx-ru