Помогите допилить блок до универсальной пересылки на бэкэнд

Andrey Repin hell-for-yahoo на umail.ru
Чт Май 24 16:57:14 UTC 2012


Здравствуйте, Уважаемый(-ая, -ое) All!

Есть такая каракатица, рождённая в воспалённом мозгу авторов ISPManager:

        server {
                listen 80;
                server_name example.com www.example.com;
                rewrite ^(/manager/.*)$ https://$host$1 permanent;
                error_page 404 = @fallback;
                location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
                        proxy_pass http://192.168.8.169:8080;
                        proxy_redirect http://example.com:8080/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Real-IP $remote_addr;
                }
                location / {
                        proxy_pass http://192.168.8.169:8080;
                        proxy_redirect http://example.com:8080/ /;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Real-IP $remote_addr;
                }
                location ~* \.(jpe?g|gif|pn[mg]|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
                        root /var/www/user/data/www/example.com;
                        access_log /var/www/httpd-logs/example.com.access.log ;
                        access_log /var/www/nginx-logs/user isp;
                }
                location @fallback {
                        proxy_pass http://192.168.8.169:8080;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Real-IP $remote_addr;
                }
        }

Опустим нарушения RFC (i.e. "proxy_redirect http://example.com:8080/ /;"),
главная претензия - этот ужас срёт в файлы, управляемые debconf'ом.
Хочу от него избавиться нафиг. Но есть вопрос.

Хочу этот ужас приспособить для мультипроксирования на апач. Чтобы не менять
конфиг nginx каждый раз при создании сайтов в Webmin (фтопку ISPManager!).

Идея выглядит как-то так:

        server {
                listen 80;
                server_name чего-то-пока-не-знаю-чего;
                rewrite "^/(manager|myadmin)/" "https://$server_addr$uri" permanent;
                error_page 404 = @fallback;
                location ~* \.(jpe?g|gif|pn[mg]|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
                        try_files @statics @fallback ;
                }
                location / {
                        try_files @fallback ;
                }
                location @statics {
                        root /var/www/user/data/www/$server_name;
                        access_log /var/www/httpd-logs/$server_name.access.log ;
                        access_log /var/www/nginx-logs/user isp;
                }
                location @fallback {
                        proxy_pass http://192.168.8.169:8080;
                        proxy_redirect http://192.168.8.169:8080/ http://$server_name/;
                        proxy_redirect http://$server_name:8080/ http://$server_name/;
                        proxy_set_header Host $host;
                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                        proxy_set_header X-Real-IP $remote_addr;
                }
        }

Два вопроса:
1. Не забыл ли я чего с недосыпу? Все ли условия оригинального блока будут
выполняться в моём шаманстве?
2. Что написать в server_name ? Можно ли вынести список серверов в отдельный
файл? Или как-то иначе это решить, по возможности не трогая файла с описанием сервера.
(Этим будет заниматься человек, не очень хорошо ориентирующийся в технических
вопросах. Не хотелось бы иметь постоянную головную боль в виде "ойсломалось" -
она не нужна ни мне, ни ему.)


-- 
С уважением

Andrey Repin (hell-for-yahoo на umail.ru) четверг, 24.05.2012, <18:51>


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