Nginxを使用してMagentoストアをセットアップしていますが、ストアは正常に機能しています。ただし、ここで、より高い_client_max_body_size
_値(たとえば100m)を設定したいと思いますが、これはadminセクションのみです。
私はすでにオンラインで検索しましたが、これを機能させる方法がわかりません。このシナリオでは、おそらくロケーションブロックを誤解しているので、さらに助けていただけますか。
私は次のサーバーブロックを持っています:
_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;
}
}
_
ここで、管理者が http://domain.com/index.php/admin_section/ にいるとしましょう。したがって、ロケーションブロック_client_max_body_size
_内でより高い_location /index.php/admin_section/ { ... }
_を適用する必要があります。しかし、そうすると、そのルールは最後の_location ~ .php$ { ... }
_ブロックによって無視されます。
if ($request_uri ~ /admin_section/) { ... }
ステートメント内でいくつかの構成ルールを調整できることは知っていますが、nginxはifステートメント内の_client_max_body_size
_ディレクティブを受け入れません。
次に、_~ .php$
_ロケーションブロックの前とその内部、および他のロケーションブロックの前にロケーションブロックを追加しようとしました。また、_~ .php$
_ブロックの内容を_/index.php/admin_section/
_ブロックにコピーして、_~ .php$
_ブロックの前後に配置しようとしましたが、何も機能しないようです。
これを機能させるにはどうすればよいですか?
次のブロックが機能する可能性があります。 PHPロケーションブロック(管理URIの通常の最終宛先)を複製します。
location ^~ /index.php/admin_section/ {
client_max_body_size 100m;
expires off;
fastcgi_pass hhvm;
proxy_read_timeout 300s;
proxy_connect_timeout 300s;
fastcgi_read_timeout 300s;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_param MAGE_RUN_CODE $mage_code;
fastcgi_param MAGE_RUN_TYPE $mage_type;
}
私はそれをテストすることはできませんが、うまくいけば、Magentoを壊す副作用はありません。