nginx设置位置

时间:2012-09-09 10:48:54

标签: magento nginx

我在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;
}

但是这个配置让我拒绝访问,所以我认为 fastcgi_param SCRIPT_FILENAME 必须与其他值一起使用。

1 个答案:

答案 0 :(得分: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 directive负责设置响应的一般超时。对于FastCGI,有fastcgi_read_timeout影响fastcgi process response timeout