Welcome! Log In Create A New Profile

Advanced

nginx+ssl+download master = битые avi и mp3

March 20, 2012 03:22AM
Всем привет !

Имею проблему следующего плана.

Есть nginx-ы (на данный момент пробовал 1.0.14 и 1.1.17), которые отдают
файлы. Всё работает замечательно, но при использовании Download Master-а
файлы avi и mp3 приходят битые.
Конфиг nginx.conf такой.

user www-data;
worker_processes 8;
pid /var/run/nginx.pid;

events {
worker_connections 768;
}

http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}



Конфиг конкретного сервера такой.

upstream server-group {
ip_hash;
server api1:81;
server api2:81;
}

server {
listen 80;
server_name files.domainname.com;
server_name_in_redirect off;
rewrite ^(.*) https://files.domainname.com$1 permanent;
}

server {

listen 443;

ssl on;
ssl_certificate /etc/nginx/keys/domainname.com.crt;
ssl_certificate_key /etc/nginx/keys/domainname.com.key;

ssl_session_timeout 5m;

ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:
+EXP;
ssl_prefer_server_ciphers on;

client_max_body_size 2000m;
server_name files.domainname.com;

location /download/ {
secure_link $arg_st,$arg_e;
secure_link_md5 xxx111xxx$uri$arg_e$remote_addr;
if ($secure_link = "") {
return 403;
}

if ($secure_link = "0") {
return 403;
}

rewrite ^/download/(.*) /rest/download/$1 last;

}

location / {

rewrite ^/download/(.*) /rest/download/$1 last;

proxy_pass http://server-group;
proxy_next_upstream error timeout;

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;

client_max_body_size 10m;
client_body_buffer_size 128k;

proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

}

location ^~ /files {
charset utf-8;
root /srv;
internal;
}

}

Сейчас стоит такой вот nginx.
nginx version: nginx/1.1.14
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-log-path=/var/log/nginx/access.log
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid
--with-debug --with-http_addition_module --with-http_dav_module
--with-http_flv_module --with-http_geoip_module
--with-http_gzip_static_module --with-http_image_filter_module
--with-http_mp4_module --with-http_perl_module
--with-http_random_index_module --with-http_realip_module
--with-http_secure_link_module --with-http_stub_status_module
--with-http_ssl_module --with-http_sub_module --with-http_xslt_module
--with-ipv6 --with-sha1=/usr/include/openssl
--with-md5=/usr/include/openssl --with-mail --with-mail_ssl_module
--add-module=/root/nginx-1.1.14/debian/modules/nginx-development-kit
--add-module=/root/nginx-1.1.14/debian/modules/nginx-upstream-fair
--add-module=/root/nginx-1.1.14/debian/modules/nginx-echo
--add-module=/root/nginx-1.1.14/debian/modules/nginx-lua
--add-module=/root/nginx-1.1.14/debian/modules/nginx-http-push
--add-module=/root/nginx-1.1.14/debian/modules/nginx-upload-module
--add-module=/root/nginx-1.1.14/debian/modules/nginx-upload-progress
--add-module=/root/nginx-1.1.14/debian/modules/mod_zip
--add-module=/root/nginx-1.1.14/debian/modules/headers-more-nginx-module
--add-module=/root/nginx-1.1.14/debian/modules/chunkin-nginx-module


Т.е. есть некий шифрованный URL (например
https://files.domainname.com/download/fileid123456?st=eEYnzmrrxzTjejtXssRnVQ&e=1332310281&u=4sAl7xYZ6Aqq), который генерится в PHP. Если его открыть, запрос через балансировщик прилетает на один из nginx-ов, Nginx проверяет через secure_link, правильный ли URL, и, если все ОК, отдаёт его одному из прокси. От прокси прилетает ответ с заголовками X-Accel-Redirect и Content-Disposition, по которому nginx идёт в internal локейшен и отдаёт файл по https-у.

Файлы лежат на подмонтированном через glusterfs сетевом хранилище. Всё
это дело живёт под Debian-ом.

Всё работает замечательно, пока мы не попробуем скачать avi или mp3,
используя Download Master (пробовали разные версии). Любым другим
способом качается замечательно и приходит не битым. Не медиа файлы
приходят целыми во всех вариантах. Никаких ошибок нигде не пишется, логи
чистые и красивые.

Есть идеи в какую сторону смотреть ?

Павел.
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx+ssl+download master = битые avi и mp3

gatesat March 20, 2012 03:22AM

Re: nginx+ssl+download master = битые avi и mp3

Pavel V. March 20, 2012 05:26AM

Re: nginx+ssl+download master = битые avi и mp3

gatesat March 20, 2012 06:31AM

Re: nginx+ssl+download master = битые avi и mp3

Маркел Мохначевский March 20, 2012 07:30AM

Re: nginx+ssl+download master = битые avi и mp3

gatesat March 20, 2012 08:27AM

Re: nginx+ssl+download master = битые avi и mp3

Gena Makhomed March 20, 2012 09:00AM

Re: nginx+ssl+download master = битые avi и mp3

gatesat March 20, 2012 09:12AM

Re: nginx+ssl+download master = битые avi и mp3

Gena Makhomed March 20, 2012 09:34AM

Re: nginx+ssl+download master = битые avi и mp3

gatesat March 20, 2012 09:37AM

Re: nginx+ssl+download master = битые avi и mp3

Oleksandr Bodnarashyk March 20, 2012 11:08AM

Re: nginx+ssl+download master = битые avi и mp3

Pavel V. March 20, 2012 01:44PM

Re: nginx+ssl+download master = битые avi и mp3

Gena Makhomed March 20, 2012 09:06AM

Re: nginx+ssl+download master = битые avi и mp3

gatesat March 20, 2012 09:17AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 315
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