Welcome! Log In Create A New Profile

Advanced

WebDAV, UTF-8, проблемы с русскими буквами у клиентов

Posted by vassin 
WebDAV, UTF-8, проблемы с русскими буквами у клиентов
February 14, 2014 05:04AM
День добрый!
Обнаружилась проблема с чтением и отображением русских букв при доступе к файлам через WebDAV. Проблема заключается в том, что клиенты WebDAV, которые подключаются к серверу "обрывают" отображение папок и файлов, как только встречают названия на русском.
Во всех клиентах была включена кодировка UTF-8 принудительно. Эти же самые клиенты при подключении к серверу на основе apache.mod_dav всё отображают правильно.

Что можно сделать с этой проблемой? Что настроить?

Список клиентов и как они отрабатывали запросы к ngnix:
1. Обычные (любые) вебраузеры - отлично. Всё показывали и скачивали.
2. NetDrive - не показывает русские буквы, но отлично показывает английские.
3. WebDrive - хорошо показывает все буквы.
4. TotalCmd - хорошо показывает все буквы, но не работает с каталогами с пробелами.
5. freebsd. dvfs - не показывает русские буквы (на apache показывает).

Собственно конфигурация nginx ниже (привожу почти без вырезаний на всякий случай. Сам WebDAV в самом низу):

#-------------------------------------------------------------------------------
# Конфигурация front-end web-сервера (далее "Сервер"), обслуживающего запросы
# виртуальных серверов:
#-------------------------------------------------------------------------------

# Имя пользователя и группы, с которыми запускается сервер.
user www www;

# Количество процессов, обслуживающих запросы к серверу.
# auto - количество запросов определяется с привязкой к количеству процессоров.
worker_processes auto;

# Определяет контекст для директив, связанных с обработкой запросов.
events {
worker_connections 1024;
}

# Определяет контекст для директив http-сервера.
http {
# Общий формат сообщений в журнал.
log_format default '[$time_local] $remote_addr $remote_user "$request" $status $bytes_sent';
# Системный формат сообщений в журнал.
log_format system '[$time_local] $remote_addr $remote_user "$http_user_agent" "$http_referer"';

# Журнал всех, обрабатываемых сервером, сообщений.
access_log /var/log/nginx/common-access.log default buffer=32k flush=1m;
# Вспомогательный журнал системных сообщений.
access_log /var/log/nginx/common-system.log system buffer=32k flush=1m;
# Журнал всех ошибок сервера.
error_log /var/log/nginx/common-error.log;

# Подключение описаний известных серверу mime-типов.
include /usr/local/etc/nginx/mime.types;
# mime-тип по умолчанию для потоков, не объявивших свой тип самостоятельно.
default_type application/octet-stream;
# Кодировка сервера по умолчанию.
charset utf-8;

# Размер тела сообдения от клиента.
client_max_body_size 10M;
client_body_temp_path /db/tmp/nginx;

# back-end сервера.

upstream svn.db { server 127.0.0.1:49408; }
upstream trac.db { server 127.0.0.1:4096; }
upstream trac.home { server 127.0.0.1:4097; }

upstream svn.storage { server 127.0.0.1:49409; }
upstream trac.storage.general { server 127.0.0.1:49407; }
upstream trac.storage.espd { server 127.0.0.1:49406; }
upstream trac.storage.eskd { server 127.0.0.1:49405; }
upstream trac.storage.sgpms { server 127.0.0.1:49404; }
upstream trac.storage.adaptation { server 127.0.0.1:49403; }
upstream trac.storage.station { server 127.0.0.1:49402; }

# Конфигурация виртуального сервера https://db.npcprom.ru.
server {
# Корневой каталог файлов сервера.
root /db/www/nginx;

# Имя виртуального сервера.
server_name db db.example.com;

# Параметры ssl-шифрования.
include /db/conf/nginx-ssl.conf;

# Параметры авторизации.
include /db/conf/nginx-auth.conf;

# Время ожидания ответа от tracd.
proxy_read_timeout 240;

# Обработка пути /trac или /home
location / {

# Обработка статических файлов Trac.
include /db/conf/nginx-trac-htdocs.conf;

# Обработка пути /trac
location /trac {
# Журнал доступа к Trac.
access_log /var/log/nginx/db-trac.log default buffer=32k flush=5;

# Адрес back-end сервера Trac.
proxy_pass http://trac.db;
proxy_pass_header Authorization;
}

# Обработка пути /svn
location /svn {
# Журнал доступа к Subversion.
access_log /var/log/nginx/db-svn.log default buffer=32k flush=5;

# Адрес back-end сервера Subversion.
proxy_pass http://svn.db;

# Параметры back-end сервера Subversion.
include /db/conf/nginx-subversion.conf;
}


# ---- Вот, собственно location с WebDAV

# Обработка пути /files
location /files {
# Журнал доступа к файлам.
access_log /var/log/nginx/db-files.log default buffer=32k flush=5;

# Корневая директория для файлов.
root /db/www/db/;

autoindex on;

client_max_body_size 16G;

dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;

create_full_put_path on;

dav_access group:rw all:rw;

limit_except GET {
allow all;
# deny all;
}
}
}
}
}
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 321
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready