Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Помогите допилить блок до универсальной пересылки на бэкэнд
Здравствуйте, Уважаемый(-ая, -ое) 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
|