Estou montando uma loja Magento com o nginx, e a loja está funcionando muito bem. No entanto, agora gostaria de definir um valor client_max_body_size
mais alto (digamos 100m), mas apenas para a seção administrativa.
Já pesquisei on-line, mas não consigo descobrir como fazer isso funcionar. Provavelmente estou entendendo mal os blocos de localização nesse cenário, então talvez você possa me ajudar ainda mais.
Eu tenho o seguinte bloco de servidores:
server {
listen 80;
server_name {domain};
root {root};
location / {
index index.html index.php;
try_files $uri $uri/ @handler;
expires max;
}
## These locations should be protected
location ^~ /app/ { deny all; }
location ^~ /includes/ { deny all; }
location ^~ /lib/ { deny all; }
location ^~ /media/downloadable/ { deny all; }
location ^~ /pkginfo/ { deny all; }
location ^~ /report/config.xml { deny all; }
location ^~ /var/ { deny all; }
location /. {
return 404;
}
location /api {
rewrite ^/api/rest /api.php?type=rest last;
}
location @handler {
rewrite / /index.php;
}
location ~ .php/ {
rewrite ^(.*.php)/ $1 last;
}
location ~ .php$ {
if (!-e $request_filename) {
rewrite / /index.php last;
}
expires off;
fastcgi_pass hhvm;
proxy_read_timeout 300s;
proxy_connect_timeout 300s;
fastcgi_read_timeout 300s;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param MAGE_RUN_CODE $mage_code;
fastcgi_param MAGE_RUN_TYPE $mage_type;
include fastcgi_params;
}
}
Agora, digamos que o administrador esteja no link . Portanto, devo aplicar um client_max_body_size
mais alto dentro de um bloco de localização location /index.php/admin_section/ { ... }
. Mas quando faço isso, essa regra está sendo ignorada pelo último bloco location ~ .php$ { ... }
.
Sei que posso ajustar algumas regras de configuração em uma instrução if ($request_uri ~ /admin_section/) { ... }
, mas o nginx não aceitará a diretiva client_max_body_size
em uma instrução if.
Depois tentei adicionar um bloco de localização antes e dentro do bloco ~ .php$
location e antes de qualquer outro bloco de localização. Eu também tentei copiar o conteúdo do bloco ~ .php$
para o bloco /index.php/admin_section/
e colocá-lo antes e depois do bloco ~ .php$
, mas nada parece funcionar.
Como faço para que isso funcione?