верните server_name *; # пожалуйста :)

Maxim Dounin mdounin at mdounin.ru
Wed May 28 13:45:42 MSD 2008


Hello!

On Wed, May 28, 2008 at 01:09:53PM +0400, Alexey V. Karagodov wrote:

> а как же тогда использовать accept_filter?
> ведь в location где стоит один рерайт, accept_filter не особо нужен ...
> или я неправильно всё понял?

Вообще, accept_filter для nginx'а не особо нужен (а в некоторых 
случаях может быть и вреден), и лучше его не использовать.

Но в любом случае - accept_filter ставится не на location, а на 
listen socket.  И всё равно в каком сервере он указан, если listen 
socket один.

Maxim Dounin

>
> On 28.05.2008, at 8:52, Igor Sysoev wrote:
>
>> On Wed, May 28, 2008 at 03:20:05AM +0400, Alexey V. Karagodov wrote:
>>
>>> default я указал, чтобы использовать httpready фильтр
>>>
>>>
>>> On 28.05.2008, at 2:53, TDz wrote:
>>>
>>>> Разве server_name * не будет коллизией с listen 80 default?
>>>> У нас это реализовано именно так - перечисляются все виртуальные
>>>> хосты а всё
>>>> что не совпало идёт на vhost где listen 80 default;
>>>> Альтернативно мне кажется можно хост который должен быть *
>>>> разместить после
>>>> всех вхостов, тогда он будет обрабатываться при отсутствии других
>>>> совпадений
>>> небудет. пробовал. попадает в default, даже если server_name не
>>> совпадает с перечисленным
>>
>> Да, все сервера с несовпадающим именем попадают в default.
>>
>> Соответственно, нужно убрать default и accept_filter с первого сервера
>> и указать его там, где нужен редирект:
>>
>>        server  {
>>                listen        80 default accept_filter=httpready;
>>                server_name   _;
>>                rewrite       ^(.*) http://www.company.ru$1         
>> permanent;
>>        }
>>
>>
>> -- 
>> Игорь Сысоев
>> http://sysoev.ru
>>
>
>





More information about the nginx-ru mailing list