Erro 404 ao usar $ limit_rate no nginx

2

Eu tenho esta configuração em execução no nginx

root@homer:/home/admin# cat /etc/nginx/sites-enabled/example.com 
server 
{
listen   80;
server_name www.example.com example.com;
access_log /var/www/example.com/logs/access.log;
error_log /var/www/example.com/logs/error.log;

## Only allow these request methods (do not accept DELETE, SEARCH and others.. ##
if ($request_method !~ ^(GET|HEAD|POST)$ ) {return 444; }

location / 
{
    root   /var/www/example.com/public_html;
    index  index.html index.htm index.php;
}


location ~ \.php$ 
{
    include /etc/nginx/fastcgi_params;

    if ($uri !~ "^/upload/") {fastcgi_pass 127.0.0.1:9000; }

    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/example.com/public_html$fastcgi_script_name;
}

# Prevent (deny) Access to Hidden Files
location ~ /\.
{
    access_log off;
    log_not_found off; 
    deny all; 
}

# Limit bandwidth rate on a specific folder 
location /download/ 
{ 
    set $limit_rate  150k; 
}   
}

Meu objetivo é limitar a taxa de largura de banda quando alguém solicitar algo do diretório "/ download /". Com essa configuração, quando abro o navegador e digito algo como "example.com/download/filename.example", recebo um erro 404. Se eu remover o bloco "location / download /" do arquivo de configuração, tudo funciona bem.

Alguém pode me ajudar a consertar isso?

Eu uso o nginx / 0.7.67 com o PHP 5.3.18-1 ~ dotdeb.0 com o Suhosin-Patch (cli)

    
por user1684189 25.10.2012 / 13:45

1 resposta

1

Você precisa definir a diretiva root para o / download / local-block.

Isso pode ser obtido definindo-se explicitamente uma diretiva raiz dentro do bloco de localização ou colocando uma diretiva raiz global fora dos blocos de localização, mas dentro do bloco do servidor.

Alternativa 1 - Diretiva raiz explícita dentro do bloco de localização

location /download/ {
  root /var/www/example.com/public_html;
  set $limit_rate 150k;
}

Alternativa 2 - Diretiva raiz global para o bloco de servidores

server {
  root /var/www/example.com/public_html;

...

  location /  {
    index index.html index.htm index.php;
  }

...

  location /download/ {
    set $limit_rate 150k;
  }
}
    
por 25.10.2012 / 13:52

Tags