Welcome! Log In Create A New Profile

Advanced

Re: Маска в server_name

December 14, 2012 04:31AM
Так, я похоже разобрался в чем дело... лишний раз убеждаюсь что нельзя решать вопрос в отрыве от задачи в целом. Общая идея: есть сервер на котором несколько страничек девелоперов. Называются они *.dev.sample.com (ну hotel.rexx.dev.sample.com и т д). Разумеется очень не хотелось бы чтобы на эти странички лазили всяческие боты. Далее. На сервере стоит испманагер и связка инжинса и апача. Когда мы заводим новый проект испманагер по шаблрну добавляет в конфиг инжинса запись типа такой:

<------>server {
<------><------>listen 111.111.111.111 80;
<------><------>server_name shop.perov.dev.sample.com;
<------><------>rewrite ^(/manager/.*)$>https://$host$1>permanent;
<------><------>error_page 404 = @fallback;
<------><------>location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
<------><------><------>proxy_pass http://111.111.111.111: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;
<------><------><------>error_page 403 = @fallback;
<------><------><------>deny all;
<------><------>}
<------><------>location ... {...
<------><------>}
<------><------>location @fallback {
<------><------><------>proxy_pass http://111.111.111.111: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;
<------><------>}
<------>}

И так далее. В мане инжинса http://nginx.org/ru/docs/http/server_names.html описан порядок приоритетов в обработке виртуальных серверов: 1. точное имя, 2. самое длинное имя с маской в начале, например “*.example.org”, 3. самое длинное имя с маской в конце, например “mail.*”, 4. первое подходящее регулярное выражение (в порядке следования в конфигурационном файле). И вот получается что инжинс наткнувшись на конструкцию типа

server {
<------><------>listen 80;
<------><------>server_name *.dev.sample.com;
<------><------>location = /robots.txt {
<------><------>root /home;
<------><------>}
<------>}

не находит приоритетного точного имени и отдает апачу 404. Как решить проблему я не знаю пока, решать на уровне апача - неохота, да и не очень красиво. Да конечно можно править девелоперские сервера сразу после их создания (так сейчас и делаю) но это тоже паллиатив.
Subject Author Posted

Маска в server_name

dga65 December 13, 2012 06:13AM

Re: Маска в server name

Daniel Podolsky December 13, 2012 06:18AM

Re: Маска в server name

dga65 December 13, 2012 10:16AM

Re: Маска в server name

Vladislav Prodan December 13, 2012 06:50AM

Re: Маска в server name

dga65 December 13, 2012 10:16AM

Re: Маска в server_name

dga65 December 14, 2012 04:31AM

Re: Маска в server_name

dga65 December 17, 2012 07:57AM

Re: Маска в server name

Maxim Dounin December 17, 2012 10:08AM

Re: Маска в server name

Dmitry Ivanov December 17, 2012 01:30PM

Re: Маска в server name

Maxim Dounin December 18, 2012 06:32AM

Re: Маска в server name

Dmitry Ivanov December 18, 2012 08:26AM

Re: Маска в server name

Pavel V. December 18, 2012 10:04AM

Re: Маска в server name

Sergey Budnevitch December 18, 2012 10:22AM

Re: Маска в server name

Maxim Dounin December 13, 2012 08:02AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 302
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready