Анализ шаблонов конфигурации для панели

Serghey Rodin skid на linux.md
Ср Апр 27 12:23:27 MSD 2011


Всем привет!
Я пишу панель управления хостинг серверов. На данном этапе хочу
реализовать поддержку nginx как сервера для обработки статики, а всю
динамику перекидывать на апач. Апач крутится на порту 8080,
соответсвенно nginx на порту 80. На весь ip создается такой вот вхост.
То что закоментировано можно раскоментировать средствами панели,
вызовами типа "Включить логирование".

server {
    listen       %ip%:%proxy_port% default;
    server_name  _;
    server_name_in_redirect  off;
    #access_log /var/log/nginx/%ip%.log main;

    location / {
        proxy_pass http://%ip%:%web_port%;
        proxy_redirect          off;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_pass_header	Set-Cookie;
        client_max_body_size    128m;
        client_body_buffer_size 128k;
        proxy_connect_timeout   90;
        proxy_send_timeout      90;
        proxy_read_timeout      90;
        proxy_buffers           32 4k;
   }
}


Дальше каждый клиент может включить для своего хоста отдельную
конфигурацию для оптимизации. Он может указать расширения файлов или в
целях защиты от ддоса можно настроить ограничения на кол-во
единовременных соединений с ip:

server {
    listen      %ip%:80;
    server_name	%domain_idn% %alias%;
    server_name_in_redirect     off;
    error_page	500 502 503 504  /50x.html;
    #error_log  /var/log/httpd/domains/%domain%.error.log error;

    location @fallback {
        proxy_pass              http://%ip%:%port%;
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_pass_header       Set-Cookie;
        limit_conn limit_per_ip %limit%
    }

    location ~* ^.+\.(%extentions%)$ {
        root		        %docroot%;
	access_log              /var/log/httpd/domains/%domain%.log combined;
	access_log	        /var/log/httpd/domains/%domain%.bytes bytes;
	expires		        30d;
	error_page	        404 = @fallback;
    }

    location / {
        proxy_pass              http://%ip%:%port%;
        proxy_set_header        Host $host;
	proxy_set_header        X-Real-IP  $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_pass_header       Set-Cookie;
        limit_conn limit_per_ip %limit%
    }

    location /cgi-bin/ {
	proxy_set_header        X-Real-IP  $remote_addr;
        proxy_set_header        Host $host;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass              http://%ip%:%port%;
	proxy_pass_header       Set-Cookie;
        limit_conn limit_per_ip %limit%
    }

    location ~ /\.ht	{deny	all;}
    location ~ /.svn/	{deny	all;}
}

Буду очень признателен за экспертную оценку и совет :)

P.S. Сайт панели пока не готов, после стабильного релиза будет редизайн
vestacp.com




Подробная информация о списке рассылки nginx-ru