У меня есть сайт для обмена файлами, который находится в perl, теперь есть файл index.dl, который используется для запроса загрузки. В apache он создает очень высокую нагрузку, нагрузка почти равна 100.Как использовать Apache для загрузки и Nginx для безопасного скачивания
Теперь я не могу использовать прокси nginx.
Я хочу установить apache для обработки всех загрузок и nginx для обработки запросов на загрузку.
Я проверил, есть модуль «http-secure-link-module», поэтому я также установил это.
Теперь наш сайт генерирует файл скачать ссылку как
xyz.com/d/$hash/filename.xyz
теперь это код, который генерирует ссылку
sub genDirectLink
{
my ($file,$mode,$mins,$fname)[email protected]_;
require HCE_MD5;
my $hce = HCE_MD5->new($c->{dl_key},"mysecret");
my $usr_id = $ses->getUser ? $ses->getUserId : 0;
my $dx = sprintf("%d",($file->{file_real_id}||$file->{file_id})/$c->{files_per_folder});
my $hash = &encode32($hce->hce_block_encrypt(pack("SLLSA12ASC4L",
$file->{srv_id},
$file->{file_id},
$usr_id,
$dx,
$file->{file_real},
$mode||'f',
$c->{down_speed},
split(/\./,$ses->getIP),
time+60*$mins)));
#$file->{file_name}=~s/%/%25/g;
#$file->{srv_htdocs_url}=~s/\/files//;
my ($url) = $file->{srv_htdocs_url}=~/(http:\/\/.+?)\//i;
$fname||=$file->{file_name};
return "$url:182/d/$hash/$fname";
}
sub encode32
{
$_=shift;
my($l,$e);
$_=unpack('B*',$_);
s/(.....)/000$1/g;
$l=length;
if($l & 7)
{
$e=substr($_,$l & ~7);
$_=substr($_,0,$l & ~7);
$_.="000$e" . '0' x (5-length $e);
}
$_=pack('B*', $_);
tr|\0-\37|A-Z2-7|;
lc($_);
}
и у меня установлена моя конфигурация nginx как
server {
listen 182;
server_name myhost.com www.myhost.com;
location/{
root /home/user/domains/hostname.com/public_html/files;
}
location /d/ {
secure_link_secret mysecret;
if ($secure_link = "") {
return 403;
}
rewrite^/files/$secure_link;
}
location /files/ {
internal;
}
}
Итак, теперь проблема заключается в том, что когда я пытался посетить любую ссылку, она дает ошибку 404. Как я могу загрузить файл?
Привет, я обновил конфигурацию, теперь он дает ошибку 403. У меня установлен nginx 1.4. – niraj