0

nginxにmagentoストアを追加するような構成があります:

server {
listen 80;

server_name domain.com;
root /www-data/domain.com/www;
access_log /www-data/domain.com/logs/nginx.access.log main;
error_log  /www-data/domain.com/logs/nginx.error_log info;
index index.php;

location / {
    index index.html index.php;
    try_files $uri $uri/ @handler;
}

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 ~* "^.+\.(jpg|jpeg|gif|css|png|js|ico|pdf|zip|tar|t?gz|mp3|wav|swf)$" {
    expires    max;
    add_header Cache-Control public;
    access_log off;
}

location  /. {
    return 404;
}

location @handler {
    rewrite / /index.php;
}

location ~ .php/ {
    rewrite ^(.*.php)/ $1 last;
}

location ~ .php$ {
    if (!-e $request_filename) { rewrite / /index.php last; }

    fastcgi_read_timeout 60;
    expires        off;
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}
}

そして、標準のindex.phpで実行される管理領域の新しい場所セクションを作成する必要がありますが、タイムアウトが長くなります。

/admin/* や /index.php/admin/* などのパスがタイムアウト 600 になるようにする必要があります。

誰かが私を助けて、そのような場所のサンプルを入手できますか?

私が理解しているように、それは次のようなものでなければなりません:

# Magento Admin
location ^~ /index.php/backoffice/ {
    if (!-e $request_filename) { rewrite / /index.php last; }
    fastcgi_read_timeout 600;
    expires        off;
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

しかし、この構成では Access deniedになっているので、 fastcgi_param SCRIPT_FILENAMEは他の値でなければならないと思います。

4

1 に答える 1

1

Nginx タイムアウト

以下は、私が知っているタイムアウト コマンドの完全なリストです。fastcgi_read_timeoutが必要だと思います。

# Magento Admin
location ^~ /admin/ {
    proxy_read_timeout 600;
    proxy_connect_timeout 600;
    fastcgi_pass 127.0.0.1:8080;
    client_header_timeout 600;
    client_body_timeout 600;
    send_timeout 600;
}

あなたも試すことができます location ^ /admin/ {

バリエーション: nginx wiki を考慮して、send_timeout ディレクティブは応答の一般的なタイムアウトを設定する責任があります。FastCGI の場合、 fastcgi プロセスの応答タイムアウトfastcgi_read_timeoutに影響を与えるものがあります。

于 2012-09-09T10:54:27.823 に答える