ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: All <nginx-ru@xxxxxxxxx>
  • Subject: Помогите допилить блок до универсальной пересылки на бэкэнд
  • From: Andrey Repin <hell-for-yahoo@xxxxxxxx>
  • Date: Thu, 24 May 2012 20:57:14 +0400

Здравствуйте, Уважаемый(-ая, -ое) 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@xxxxxxxx) четверг, 24.05.2012, <18:51>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.