
Alex
10.12.2016
14:34:43
Которые про индетацию правильную и нормальное форматирование вообще не слышали

Alex
10.12.2016
14:35:24
https://github.com/nginx/nginx/blob/f8a9d528df92c7634088e575e5c3d63a1d4ab8ea/src/os/unix/ngx_linux_sendfile_chain.c#L167

Alex
10.12.2016
14:35:24
Лучше б в фифа 17 поиграл

Alex
10.12.2016
14:35:57
А, не, это я поторопился

Google

Alex
10.12.2016
14:37:10
В этой ебучей лапше тяжеловато разобраться путем статического анализа - возможно, после отправки хедера оно попытается продолжить свое чорное дело

Alex
10.12.2016
14:37:54

Александр
10.12.2016
14:38:15

Alex
10.12.2016
14:38:29
Со мной был забавный эпизод
Как-то раз, уже не помню в каком году, в Питере был очередной хакатон
Хакдей он назывался, наверное
И мы с Димой Галинским заявились на него написать модуль, который использовал бы в nginx под вендой IOCP
У нас с ним были разные подходы
Он считал, что надо взять уже существующие наработки из дерева кода nginx и их исправить
А я считал, что надо взять libuv
В итоге, прежде всего мы поднакидались пивом
А днем сели рубать по методу Димы
Код вокруг IOCP был настолько плох, что мы только смогли констатировать его непригодность
И вот - через несколько лет я сел и попытался внедрить libuv
И выяснил, что libuv это просто nginx
С точностью до имен в хедерах
То есть - нет в нем никакого IOCP, просто select() обычный

Google

Alex
10.12.2016
14:41:35
Так закончилось детство

Alex
10.12.2016
14:41:59
?
В следующий раз когда ты будешь есть вкусный торт я отправлю тебе этот css и торт из тебя вылезет обратно.

Александр
10.12.2016
14:42:14

Alex
10.12.2016
14:42:30

Alexey
10.12.2016
14:42:52
кароче, так как уже html пошли обсуждать держите ответ:
sendfile(2)
передаёт байтики как они есть на диске, но в сеть обычно нужно отправлять модифицированные данные: банальный пример — TLS. Менее банальный пример gzip (с этим хотябы можно бороться пре-создавая уже сжатые файлы и отдавая их. с TLS так не получается из-за PFS). Тоесть фактически любой сервер который отдаёт файлы с диска в зашифрованном/сжатом виде (привет gRPC!) - должен использовать readv/writev вместо модного sendfile

Alex
10.12.2016
14:43:15
Точно

Alexey
10.12.2016
14:43:33
вот тут красивый расказ про эту боль http://techblog.netflix.com/2016/08/protecting-netflix-viewing-privacy-at.html
чего только не сделаешь для 40G сетевух

Alex
10.12.2016
14:44:22

Alexey
10.12.2016
14:46:24
вощем теперь каждый раз когда вы будете видеть sendfile on в конфигах nginx - вы будете вспоминать этот разговор и понимать что люди либо не шифруют то что они отдаю, либо они не понимают что они делают, либо это конфиги Netflix

Alex
10.12.2016
14:46:41
Бггг, отлично

Uncel
10.12.2016
14:46:42

Alexey
10.12.2016
14:46:48
(в линукс кстати тоже хотят это пропихнуть но пока не выходит вроде цветочек альнкий)

Alex
10.12.2016
14:46:56
Ты же понимаешь, что мы теперь это будем спрашивать на собеседованиях?
Хотя
:(
Не будем

Alexey
10.12.2016
14:47:18

Uncel
10.12.2016
14:47:20
Наркоманский вариант все в юзерспейсе и плевать на секурность

Google

Марк ☢
10.12.2016
14:48:15
Блять в селекте побитный скан фдсета
Говно

Alex
10.12.2016
14:48:35
Вот поэтому никогда
Никогда никогда никогда
Не используйте nginx под Windows

Alexey
10.12.2016
14:48:50
ладно, пофлудил, пойду дальше читать, а то понедельник приближается нехуйовыми темпами

Alex
10.12.2016
14:49:02
Пойду мясо жарить

Марк ☢
10.12.2016
14:49:09

Alex
10.12.2016
14:49:11
Точнее, тушить

Combot
10.12.2016
15:22:26
combot.org/chat/-1001030317489

Aleksandr
10.12.2016
15:23:24


Roman
10.12.2016
15:40:31
«Важно понимать, что проектирование программы является пошаговым, последовательным процессом, как и обучение человека. Оно основано на экспериментах; сколько бы вы ни анализировали и ни планировали, в начале работы над проектом у вас еще останутся неясности. Процесс пойдет более успешно — и вы быстрее добьетесь результатов, если начнете «выращивать» свой проект как живое, эволюционирующее существо, нежели «воздвигнете» его сразу, как небоскреб из стекла и металла. Наследование и композиция — два важнейших инструмента объектно-ориентированного программирования, которые помогут вам выполнять эксперименты такого рода.»
Отрывок из книги: Екель, Брюс. «Философия Java.» iBooks.
Этот материал может быть защищен авторским правом.

Daniel
10.12.2016
15:52:36

Марк ☢
10.12.2016
16:12:23
И когда новички читают это мы видим адские говнопроги
Состоящие из 100500 косых классов с ифниками
Поэтому нашим программистам я говорю -- сначала напишите говно. В виде длинной простыни, с копипастами и тд. И уж только потом поймите как туда накрутить нужные классы или их иерархии

Roman
10.12.2016
17:04:42

Google

Roman
10.12.2016
17:11:55

Suika
10.12.2016
17:37:29
вопрос, что сейчас под xenial считается дровами для radeon?

Alex
10.12.2016
17:47:57
Закончилось все

ivan
10.12.2016
17:48:35
Ну слава КПСС

Иван
10.12.2016
17:52:13
Ребятушки, выручайте.
Имею проблему и не знаю как грамотно решить.
Есть сеть. В сети веб клиент (браузер) и веб сервер (nginx с вирт.хостами). Оба сидят в одной подсети.
При попытке посетить веб ресурс по домену - попадаю в веб морду гейта.
Гейт рулит натом только на внешнем интерфейсе - локальный ему по боку. Соответственно DNS говорит мол ip домена - это ip гейта и веб клиент попадает в веб морду.
Вижу только два решения:
1. Оверрайдить домен на локальный DNS.
2. Править hosts клиентов -_-
Подскажите на сколько это корректное решение и в случае если нет - направление куда копать.

Driver
10.12.2016
17:55:02
Оверрайдить домен на локальный DNS
this

Иван
10.12.2016
17:55:27
Спасибо.
DNS Forwarder/Resolver мне в помощь, верно?

Driver
10.12.2016
17:56:54
на DNS просто пропиши внутренний адрес нужных домеов для запросов из локалки

Иван
10.12.2016
17:57:20
Локальный DNS отсутствует.
Только кэширующий форвардер на гейте.

Driver
10.12.2016
17:57:47
если умеет подставлять, то можно в нем поправить

Ibra
10.12.2016
18:24:46
а в java можно создать макрос для автоматической отправки сообщения по определенным условиям?

Aleserche
10.12.2016
18:29:15
что за макрос?

Ibra
10.12.2016
18:31:38
макрос для автоматической отправки сообщения по определенным условиям

ferret
10.12.2016
18:49:31

Aleserche
10.12.2016
18:55:15

Alex
10.12.2016
19:04:32

Google

Aleserche
10.12.2016
19:08:58
ну тогда ответ найдет

Иван
10.12.2016
19:11:02

ferret
10.12.2016
19:27:49

Иван
10.12.2016
19:28:22
Не хочется ворошить устои продукта
Разрабы хотят чтобы ковыряли веб интерф
И не лезли самостоятельно в конфиги

Roman
10.12.2016
19:37:02

Alex
10.12.2016
19:39:28
Нет там IOCP, нету
А что? Приделали разве?

Roman
10.12.2016
19:41:41
В виндовом nginx?
в виндовом nginx - нет. в libuv - iocp. я глянул сорцы - там везде OVERLAPPED фигурирует.

Alex
10.12.2016
19:42:46
Мммм
Интересно
Ты вернул мне надежду