Welcome! Log In Create A New Profile

Advanced

Re: location /

Gena Makhomed
October 09, 2011 07:16AM
On 09.10.2011 0:08, Maxim Dounin wrote:

>> Когда-то Максим говорил, что в конфигурации всегда желательно
>> указывать "location /", но в примерах на сайте http://nginx.org/
>> не всегда указывается "location /", например, In catch-all server
>> examples, на странице http://nginx.org/en/docs/http/server_names.html

>> Вопрос: "всегда указывать location /" - это была рекомендация,
>> чтобы обойти какие-то глюки в старых версиях nginx, и сейчас,
>> в nginx 1.x.х это уже не актуально? или и сейчас есть какие-то случаи,
>> когда nginx не будет нормально работать без "location /" в конфиге ?

> Это была рекомендация, чтобы не взорвать себе мозг деталями логики
> работы, и спокойно спать по ночам.

но ошибок и предупреждений при тестировании конфига, когда в нем нет
"location /" не происходит, значит иногда такой конфиг вполне безопасен.

> Ошибок там, AFAIK, сейчас нет, а вот нюансы присутствуют.
> Например, вот эти два конфига радикально отличаются:

> server {
> rewrite ^(.*) /prefix$1;
> }

> server {
> rewrite ^(.*) /prefix$1;
>
> location / {
> # nothing here
> }
> }

в первом случае происходит зацикливание rewrite or internal redirection
cycle while processing "/prefix/prefix/prefix/prefix/prefix/prefix/..."
а во втором rewrite на уровне server отрабатывает всего один раз.

например, судя по примерам к документации - "return 444;"
на уровне server работает без нюансов, вне зависимости
от наличия/отсутствия "location /" в конфиге этого server`а.

из этого можно сделать вывод, что в конфиге вполне можно писать

server {
listen 11.22.33.44:80 default_server;
server_name default-server;
return 444;
}

server {
server_name www.example.com;
rewrite ^ http://example.com$request_uri? permanent;
# или аналог через return 3xx uri / return 2xx text
}

server {
server_name example.com;
rewrite ^ https://example.com$request_uri? permanent;
# или аналог через return 3xx uri / return 2xx text
}

без "location /", а во всех остальных случаях -
желательно будет явно указывать "location /" ?

и всегда желательно делать location-по-умолчанию "location /",
если в конфиге nginx присутствуют какие-либо другие location`ы.

так же как желательно будет делать и server-по-умолчанию, куда будут
попадать все запросы, для которых нет более специфичного server`а.

я ничего не упустил?

--
Best regards,
Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

location /

Gena Makhomed October 08, 2011 09:58AM

Re: location /

Михаил Монашёв October 08, 2011 10:24AM

Re: location /

Maxim Dounin October 08, 2011 05:10PM

Re: location /

Gena Makhomed October 09, 2011 07:16AM

Re: location /

Maxim Dounin October 09, 2011 04:20PM

Re: location /

Gena Makhomed October 10, 2011 08:32AM

Re: location /

Igor Sysoev October 11, 2011 05:54AM

Re: location /

Gena Makhomed October 11, 2011 07:20AM

Re: location /

Igor Sysoev October 12, 2011 05:26AM

Re: location /

Gena Makhomed October 11, 2011 07:48AM

Re: location /

Igor Sysoev October 12, 2011 06:14AM

Re: location /

Gena Makhomed October 18, 2011 02:48PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 157
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