2012-09-09 178 views
0

我nginx的有這樣的配置更多的Magento我店:nginx的設置FO位置

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,但長期超時新位置部分。

所以我需要像路徑/管理/ *或/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

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的維基,該send_timeout directive負責制定響應的一般超時。對於FastCGI,有fastcgi_read_timeout正在影響fastcgi process response timeout

+1

我知道我必須使用fastcgi_read_timeout並使用它 - 我不知道如何爲管理區域創建位置。位置^〜/index.php/admin/ {fastcgi_read_timeout 600; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; }得到我訪問被拒絕的頁面,並且位置^〜/ admin/{...}不工作,因爲所有的管理員網址都與url.php/admin在url – Kudja

+0

一起使用我更新了我的代碼。 – TheBlackBenzKid

+0

這樣的conf會從nginx得到通知,我也更新了問題 - 我試圖說,這將無法正常工作(在我添加的配置中)line fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; ,我不知道哪個正確的配置行必須在這裏 – Kudja