Nazar
я нет, но мы сейчас говорим не просто о протоколе, но и о его работе.
веб серверу надо не просто принять запрос и его обработать, но правильно утилизировать вычислительные мощности.
Sergei
Sergei
а как правильно обработать запрос - задача приложения тащемта.
Vladimir
Там куда больше проблем доставит тюнинг сети
Nazar
Nazar
расскажите, как вы безпроблемно обслуживаете 1m rps, с удовольствием послушаю
Aleksey
Nazar
ну с nginx можно в таком случае еще больше получить производительность отдавая 444
Vladimir
@wavedocs я не сильно заморачиваясь на тюнинг пару лет назад на более-менее обычном железе получал 500к рпс http, именно на отдачу "200 ок", но с полным парсингом и валидацией запроса
Sergei
Vladimir
если заморочиться тюнингом дальше и взять железо чуть пожирнее 2-х 8и ядерных процов, то можно и больше на nginx'е
Nazar
niko
суть апликейшн сервера, что это фреймворк где все переплетено - стейты, база, приложение
в результате ты можешь передать стейт приложения в другой сервер и получить фейловер или можешь избавить приложение от хождения в базу
это все фишки для энтерпрайза, всякие вебсферы и гласфиши
niko
а нжинкс просто реализовал десятую часть из этого, назвал гордым словом и продает
Sergei
Nazar
444 Connection Closed Without Response
A non-standard status code used to instruct nginx to close the connection without sending a response to the client, most commonly used to deny malicious or malformed requests.
Vladimir
@wavedocs https://camo.githubusercontent.com/6958e5269df87068b510116c6f9028ed28d33419/687474703a2f2f692e6779617a6f2e636f6d2f61383563313864333136326466623436623438356262343165306164343433612e706e67
Vladimir
я просто оставлю это тут
Sergei
если конфиг типа
server {
listen 80 default_server
return 444;
}
и это единственный сервер, я почти уверен что нджинкс не парсит ничего.
Vladimir
именно к вопросу парсинга http
Sergei
Nazar
в стандарт http не входит, но с клиентом общение идет по http протоколу
Vladimir
бенчмарк как я понимаю 2014 года, 5.4М запросов в секунду может перелопатить парсер
Sergei
тут нет HTTP
niko
а GET это что?:)
Vladimir
tcp :D
niko
ааа ок
Nazar
Nazar
все эе очевидно
niko
а о чем вы кстати спорите?:)
Sergei
Sergei
мне говорят что протокол сложный, я говорю что простой
niko
а как сервер узнает что надо 444 отдать?
Sergei
niko
не смотрит в request ?)
Vladimir
поэтому нужны application server'ы
Vladimir
а потом мы ушли в "а насколько просто обработать 1М http requests/s"
niko
пожалуй это неправда
niko
а вы википедию уже читали?
niko
https://en.wikipedia.org/wiki/Application_server держите
Vladimir
и вот дошли до того что отдавать "200 ОК" на любой запрос это не честно, так можно уйти в отправку "444"
Vladimir
niko
uwsgi это такой же протокол как fastcgi или http
niko
никакой разницы нет
niko
парсить их одинаково
Sergei
Sergei
Ivan
Вы тут опять абстрактных коней в вакууме решаете? :)
Sergei
провел тест, действительно нджинкс парсит HTTP перед тем как "отдать" 444.
Nazar
Denis
@spuzirev чтобы не морочится с мультипликацией на стороне application и не имплементить логику сто раз
Vladimir
Vladimir
взял библиотеку и юзаешь
Denis
не
Vladimir
есть под почти любой язык
Denis
да. сейчас да
Denis
зачем unit в 2к17 я ваще хз
Vladimir
ну так nginx app server тока ща анонсировали
Denis
я про далёкие 2002
Vladimir
и вопрос о том нафига
Denis
я думал вопрос зачем вобще, а не конкретно юнит
Nazar
как по факту, хз
Nazar
я про unit если что)
Sergei
Sergei
Sergei
почему например мы не запускаем go в uwsgi? :)
Vladimir
Sergei
Sergei
это придумали когда был CGI, но уже хотелось чуть быстрее работать.