Перейти к содержанию

Elgg

Elgg is an open-source social networking engine.

Requirements

See also: Sample Elgg-1.8 configuration (GitHub Gist)


Configuration with Memcached

# Redirect non-www to www
server {
    server_name domain.com;
    rewrite ^/(.*) http://www.domain.com/$1 permanent;
}

# Main server with memcached caching
server {
    server_name www.domain.com;

    client_max_body_size 8M;
    client_body_buffer_size 256k;

    location / {
        if ($request_method = POST) {
            proxy_pass http://localhost:8000;
            break;
        }

        default_type "text/html; charset=utf-8";
        set $memcached_key "/elgg-$uri";
        memcached_pass 127.0.0.1:11211;
        error_page 404 502 = /fallback;
    }

    location = /fallback {
        proxy_pass http://127.0.0.1:8000;
        break;
    }

    error_log /home/user/www/domain.com/log/error.log;
}

# Backend PHP server
server {
    listen 8000;
    server_name www.domain.com;
    root /home/user/domain.com;
    index index.php;

    client_max_body_size 8M;
    client_body_buffer_size 256k;

    location / {
        if (!-e $request_filename) {
            rewrite ^/action/([A-Za-z\_\-\/]+) /engine/handlers/action_handler.php?action=$1 last;
            rewrite ^/actions/([A-Za-z\_\-\/]+) /engine/handlers/action_handler.php?action=$1 last;
            rewrite ^/export/([A-Za-z]+)/([0-9]+) /services/export/handler.php?view=$1&guid=$2 last;
            rewrite ^/export/([A-Za-z]+)/([0-9]+)/([A-Za-z]+)/([A-Za-z0-9\_]+) /services/export/handler.php?view=$1&guid=$2&type=$3&idname=$4 last;
            rewrite ^/_css/css.css /_css/css.php last;
            rewrite ^/pg/([A-Za-z\_\-]+)/(.*) /engine/handlers/pagehandler.php?handler=$1&page=$2 last;
            rewrite ^/pg/([A-Za-z\_\-]+) /engine/handlers/pagehandler.php?handler=$1 last;
            rewrite ^/xml-rpc.php /engine/handlers/xml-rpc_handler.php last;
            rewrite ^/mt/mt-xmlrpc.cgi /engine/handlers/xml-rpc_handler.php last;
        }
    }

    location ~ \.php$ {
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_intercept_errors on;

        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_param REQUEST_METHOD $request_method;
        fastcgi_param CONTENT_TYPE $content_type;
        fastcgi_param CONTENT_LENGTH $content_length;

        expires max;
    }

    error_log /home/user/www/domain.com/log/error.log;
}