Re: непонятное поведение

Maxim Dounin mdounin на mdounin.ru
Пн Июн 10 12:34:42 UTC 2019


Hello!

On Mon, Jun 10, 2019 at 09:16:40AM +0300, Aln Kapa wrote:

> server {
>     server_name xx.xxxx.xxxx;
>     listen 443 http2;
> 
>     .............................
> 
>     location / {
>         proxy_pass http://127.0.0.1:10080;
>         ..................................................
>     }
> }
> 
> server {
>     listen   80;
>     server_name xx.xxxx.xxxx;
>     return 302 https://xx.xxxx.xxxx/$request_uri;
> }
> Да у меня в конфигурации есть редирект, но разве "listen 80" означает любой
> в интернете IP адрес, по идеи тут должно быть любой мой?
> и потом указано же "server_name xx.xxxx.xxxx;" как с этим быть?

"listen 80" означает - отвечать на любые запросы, поступающие по 
IPv4 на порт 80.  Что при этом написано в запросе - не важно, 
важно - куда было установлено TCP-соединение.  А оно, очевидно, 
было на 80-й порт.

Что до "server_name", то для выбора блока server это важно тогда и 
только тогда, когда в конфигурации есть другие блоки server, 
использующие тот же listen-сокет.  В данном случае блок server 
для 80-го порта - единственный, он же сервер по умолчанию, и 
запрос будет обработан именно в этом блоке server.

Как я уже писал, подробнее обо всём этом можно прочитать тут:

http://nginx.org/ru/docs/http/request_processing.html

-- 
Maxim Dounin
http://mdounin.ru/


Подробная информация о списке рассылки nginx-ru