Re: Баланс Ирочка по имени хоста

2018-12-03 Пенетрантность Pavel via nginx-ru

On Mon, 03 Dec 2018 09:41:29 -0500
 "firedragon"  wrote:

Привет, всем.


Как я понял при получении запроса nginx дальше 
балансирует запрос на сервер iis по IP адресу. 


Можете подсказать как решить проблему?



Привет.

Вам нужно использовать директиву

proxy_set_header Host $host;

http://nginx.org/ru/docs/http/ngx_http_proxy_module.html#proxy_set_header

Разберитесь с этим.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Баланс Ирочка по имени хоста

2018-12-03 Пенетрантность Сергей Олегович
Прикладывайте конфиг

С уважением,
Сергей
3 дек. 2018 г., 17:41 +0300, firedragon , писал:
> Привет, всем.
>
> Я только начал изучать nginx, может кто-нибудь мне подсказать.
> Имеется несколько сайтов на одном IIS все через ssl
> https://www.xxx.ru
> https://www.yyy.ru
> https://www.zzz.ru
>
> , соответственно чтобы получить доступ к нужному сайту нужно обратиться
> обязательно по имени сайта, например www.xxx.ru.
>
> Создал несколько серверов , пытаюсь делать балансировку, nginx не может
> открыть страницу.
>
> Как я понял при получении запроса nginx дальше балансирует запрос на сервер
> iis по IP адресу.
>
>
> Можете подсказать как решить проблему?
>
> Заранее спасибо.
>
> Posted at Nginx Forum: 
> https://forum.nginx.org/read.php?21,282240,282240#msg-282240
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Баланс Ирочка по имени хоста

2018-12-03 Пенетрантность firedragon
Привет, всем.

Я только начал изучать nginx, может кто-нибудь мне подсказать.
Имеется несколько сайтов на  одном IIS все через ssl
https://www.xxx.ru
https://www.yyy.ru
https://www.zzz.ru

, соответственно чтобы получить доступ к нужному сайту нужно обратиться
обязательно по имени сайта, например www.xxx.ru.

Создал несколько серверов , пытаюсь делать балансировку, nginx не может
открыть страницу.

Как я понял при получении запроса nginx дальше балансирует запрос на сервер
iis по IP адресу. 


Можете подсказать как решить проблему?

Заранее спасибо.

Posted at Nginx Forum: 
https://forum.nginx.org/read.php?21,282240,282240#msg-282240

___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: proxy_store периодически сохраняет только часть ответа :(

2018-12-03 Пенетрантность Maxim Dounin
Hello!

On Sun, Dec 02, 2018 at 11:18:05PM +0300, Виктор Вислобоков wrote:

> Схема такая: nginx(1) -> nginx(2) -> httpd
> На nginx(1) пытаюсь сделать кастомный статик кэш через proxy_store. Почти
> работает, но в произвольный момент времени сохраняет на диск не всю
> страницу с ответом, а только её часть! Это именно происходит периодически и
> не зависит ни от IP адреса ни от клиента (тот же Zabbix у меня то получает
> фрагмент и ругается на малый размер страницы, то в следующий повтор всё
> получает нормально - стоит чистка файлов, сохранённых proxy_store каждую
> минуту).
> 
> Всю голову сломал - не могу понять что за ерунда!
> Судя по логам nginx(2) всегда отдаёт полный ответ.

Content-Length при этом в ответах бэкенда есть?  А "только её 
часть" - это именно часть, или просто пустой файл?

В случае, если именно пустой файл - проблема может быть связана с 
тем, что в ответах нет Content-Length и сохраняются ответы на 
HEAD-запросы.  

Кроме того, опять же в случае отсутствия Content-Length, 
стоит убедиться, что между nginx(1) и nginx(2), а равно между 
nginx(2) и httpd - отсутствуют сетевые проблемы, и никто не 
пытается преждевременно завершать процессы серверной стороны.  
Либо же просто попробовать включить HTTP/1.1 с помощью директивы 
proxy_http_version (http://nginx.org/r/proxy_http_version) и 
посмотреть, поможет ли.

Проблема в том, что в HTTP/1.0, который nginx использует для 
общения с бэкендами по умолчанию, в отсутствии Content-Length нет 
какого-либо контроля целостности ответа кроме собственно 
информации с уровня TCP, и если в какой-то момент бэкенд закроет 
соединение (например, потому что процессу сказали завершиться, или 
он решил, что случился таймаут) - то с точки зрения клиента ответ 
будет полным.

-- 
Maxim Dounin
http://mdounin.ru/
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: proxy_store периодически сохраняет только часть ответа :(

2018-12-03 Пенетрантность Виктор Вислобоков
Кажется нашёл.
У меня в настройках стояло так, что если файл кэша есть, то отавать его,
если нет, то создавать. Но было ещё одно условие: если запрос POST то не
отдавать, а создавать. Видимо при одновременном приходе GET и POST запросов
ответ писался в один и тот же файл и возникала проблема. Пустил POST
запросы вообще мимо кэша и файл перестал быть фрагментарным.
Спасибо за участие всем, кто ответил! :)

пн, 3 дек. 2018 г. в 08:52, Виктор Вислобоков :

> >> А чем proxy_cache не устраивает ? прокси стор, это больше для "на
> века", а Вы трете его зачемто постоянно
> Куда и что сохраняет proxy_cache знает только сам proxy_cache. Найти
> что-то сохранённое им на диске очень большая проблема, да и посмотреть что
> там тоже не так просто. А в proxy_store можно задать вполне себе понятный и
> человеко-читаемый путь и содержимое тоже вполне себе понятно.
>
> >> У Вас proxy_temp_path и место куда сторится на одном разделе ?
> На одном.
>
> пн, 3 дек. 2018 г. в 00:15, Alexey via nginx-ru :
>
>> 02.12.2018 23:18, Виктор Вислобоков пишет:
>> > Схема такая: nginx(1) -> nginx(2) -> httpd
>> > На nginx(1) пытаюсь сделать кастомный статик кэш через proxy_store.
>> > Почти работает, но в произвольный момент времени сохраняет на диск не
>> > всю страницу с ответом, а только её часть! Это именно происходит
>> > периодически и не зависит ни от IP адреса ни от клиента (тот же Zabbix
>> > у меня то получает фрагмент и ругается на малый размер страницы, то в
>> > следующий повтор всё получает нормально - стоит чистка файлов,
>> > сохранённых proxy_store каждую минуту).
>> >
>> А чем proxy_cache не устраивает ? прокси стор, это больше для "на века",
>> а Вы трете его зачемто постоянно
>>
>> У Вас proxy_temp_path и место куда сторится на одном разделе ? Если на
>> разных, то, скорее всего, пока файл от одного запроса копируется,
>> успевает прийти другой запрос и видя файл на месте его и отдает, ну
>> сколько успело скопироваться на момент второго запроса столько и отдает.
>>
>> ___
>> nginx-ru mailing list
>> nginx-ru@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Re: Документация к директиве fastcgi_cache_key

2018-12-03 Пенетрантность Константин Ткаченко
пт, 30 нояб. 2018 г. в 13:36, Илья Шипицин :

> протоколы действительно разные.
> но выглядит так, что предложение Гены поможет написать документацию, более
> устойчивую к тупому копипасту (есть такой патерн, что глядя на пример
> документации на авторитетном сайте, его копируют)
>
> пт, 30 нояб. 2018 г. в 14:30, Gena Makhomed :
>
>> On 29.11.2018 21:02, Maxim Dounin wrote:
>>
>> > CGI и HTTP - это два разных протокола.  В последних вариациях на
>> > тему спецификации CGI записано, что на HEAD-запросы тело
>> > возвращать не надо (а если вдруг вернули - то сервер его должен
>> > поскипать), https://tools.ietf.org/html/rfc3875#section-4.3.3:
>> >
>> > The HEAD method requests the script to do sufficient processing to
>> > return the response header fields, without providing a response
>> > message-body.  The script MUST NOT provide a response message-body
>> > for a HEAD request.  If it does, then the server MUST discard the
>> > message-body when reading the response from the script.
>> >
>> > Однако на момент собственно появления и активного распространения
>> > CGI никаких подобных требований не существовало, см.
>> > https://www.w3.org/CGI/ и в частности
>> > https://tools.ietf.org/html/draft-robinson-www-interface-00.
>>
>> Там написано:
>>
>> REQUEST_METHOD
>>
>>This variable is specific to requests made with HTTP.
>>
>>The method with which the request was made, as described in
>>section 5.1.1 of the HTTP/1.0 specification [3].
>>
>>   http-method  = "GET" | "HEAD" | "POST" | extension-method
>>
>> "described in HTTP/1.0 specification" - написано где смотреть семантику.
>> А в HTTP/1.0 specification написано, что "server must not return any
>> Entity-Body in the response".
>>
>> CGI и HTTP - это два разных протокола, но первый ссылается на второй.
>> При этом CGI протокол не запрещает бекенду отвечать на HEAD-запросы
>> так, как этого требует от веб-сервера спецификация HTTP протокола.
>>
>> > И на
>> > практике я не встречал скрипты, которые бы отдельно обрабатывали
>> > HEAD-запросы.
>>
>> Но они есть.
>> И их поведение ничем не противоречит спецификации FastCGI протокола.
>>
>> >>> Речь про какие-то фреймворки, которые обрабатывают
>> >>> HEAD автоматически, не донося соответствующую информацию до кода?
>> >>> Или про какой-то стандартный софт, который не возвращает тело для
>> >>> HEAD-запросов?
>> >>
>> >> Какая разница, сам софт или фрейморк используемый софтом в каждом
>> >> конкретном случае обрабатывает HEAD запросы согласно требований RFC?
>> >
>> > Никакой.  Но с этой точки зрения так же нет разницы, что именно
>> > написано в примерах в описании директивы fastcgi_cache_key.
>>
>> Вы не против, если я создам на хабре статью, в которой напишу
>> про эту проблему с ошибочными примерами в документации nginx
>> к директиве fastcgi_cache_key и ее аналогам?
>>
>> --
>> Best regards,
>>   Gena
>>
>> ___
>> nginx-ru mailing list
>> nginx-ru@nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru


Прошу прощения, что влезаю.
Есть статья Дмитрия Котерова от октября 2009 года, посвещенная кешированию
в nginx http://dklab.ru/chicken/nablas/56.html
Если механизм кеширование не сильно изменился, то данные там акутальные.

На хабре, конечно, охват аудитории больше будет, если там появится подобная
статья.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru