Live data from Hacker News

Do svidaniya, Igor, and thank you for Nginx

nginx.com

51–60 of 366 posts

Re: Do svidaniya, Igor, and thank you for Nginx

#51
post #49

unrelated but ive always thought the F5 acquisition of NGINX made little sense. I think F5 saw the writing on the wall a little late, panicked, and bought the first competitor they could come up with that showed up in a Gartner quadrant. so much of the NGINX product that aligns with F5 as a competitive element is essentially already implemented and free by people who are already completely competent in load balancing…

I mostly see it in businesses that aren't very competent and/or have a support/licensing partner that presents them a tunnel vision they cannot deviate from. F5 specifically is usually also just 'what they always had', or part of a bundle.

Re: Do svidaniya, Igor, and thank you for Nginx

#53

People need to stop with this Cloudflare captcha madness. I literally accessed nginx.com a few hours ago and now it hit me with a captcha again.

Cloudflare uses a heuristic trust model where it pulls multiple trust signals from the client. It can use several things (including stable IP address, cookies, and I think even a bit of JavaScript grabbing a nonce from local storage). If you run with a lot of "identity fuzzers" (browsing through Tor, JavaScript off, cookies banned), Cloudflare can't build its trust heuristics and needs to challenge-response more ofte…

> Cloudflare uses a heuristic trust model where it pulls multiple trust signals from the client.

The wording "heuristic trust model [...] trust signals from the client", would not be out of place in the context of a sigint discussion.

Re: Do svidaniya, Igor, and thank you for Nginx

#55
post #43
post #28

Earlier quoted context omitted.

"Until we meet again"

Auf Wiedersehen!

Genau! Actually, this perfect duality also extends to other phrases, like “priyatnava appetita”, just like Guten Appetit! At the same time, in Ukrainian you’d say “smachnogo”, similar to Swedish “smaklig måltid” (lecker Mahlzeit), as “smak” means taste in both languages.

Re: Do svidaniya, Igor, and thank you for Nginx

#56
post #45

Earlier quoted context omitted.

I mean there was lighttpd before nginx and they have/had pretty similar structures, weights, etc. I feel like I knew at one point why it got so thoroughly supplanted by nginx but I don't remember now why that happened.

The performance engineering in NGINX back then was really quite something. This classic 2007 tutorial starts by pointing out that NGINX parses the HTTP verb by looking at the second letter first, so that if it's O it knows to check for POST or COPY! https://web.archive.org/web/20070505051653/http://www.riceon...

Does it really look at second letter first or is that snippet taken out of context (it isn’t implied that it does in that email, just that it doesn’t use a library function) ? Since most requests are GET it still makes sense to handle that case first. Though after trying to common cases looking at the second letter for the P subcases may save some branching.

Re: Do svidaniya, Igor, and thank you for Nginx

#57
post #45

Earlier quoted context omitted.

I mean there was lighttpd before nginx and they have/had pretty similar structures, weights, etc. I feel like I knew at one point why it got so thoroughly supplanted by nginx but I don't remember now why that happened.

The performance engineering in NGINX back then was really quite something. This classic 2007 tutorial starts by pointing out that NGINX parses the HTTP verb by looking at the second letter first, so that if it's O it knows to check for POST or COPY! https://web.archive.org/web/20070505051653/http://www.riceon...

Doing Boyer and Moore proud.

I think that if you want to support all verbs, you face at least 3 'ambiguities' whether you first check the first, second, or third character of the string. (It must be at most the third, as the shortest verbs are 3 characters long.)

First checking the first character is ambiguous between POST, PUT and PATCH. First checking the second character is ambiguous between HEAD, DELETE, and GET. First checking the third character is ambiguous between GET, PUT, OPTIONS, and PATCH. [0]

edit As danachow points out, the verbs are not all used with the same frequency. If real-world performance is the goal we'd presumably want to optimise for the GET case, which presumably means first checking the first character, as the 'G' is unique to GET.

[0] https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods

Re: Do svidaniya, Igor, and thank you for Nginx

#58

It still surprises me that NGINX beat out Apache so quickly even though Apache had way more modules and was/is entirely free vs. NGINX which is more or less "open core" with some nice features requiring commercial licensing.

To me, it coincided with async (long polling/comet/SSE), more live, web applications. Apache had a horrible story around this, with one thread per connection (I believe Apache 2 may have had an optional execution model, which was also uncomfortable for some reason).

I used lighttpd for this, mentioned in another thread, rather than nginx, which was a similar breath of fresh air coming from Apache -- not only for the event loop model built around epoll and friends, but also the configuration and general deployment.

Re: Do svidaniya, Igor, and thank you for Nginx

#59

Earlier quoted context omitted.

"Do svidaniya" sounds more formal than "See you" though.

"Farewell"?

Not exactly. You bid farewell with “proschayte” (literally begging for forgiveness) or “vsevo dobrava” (wishing all the kind/best), but “do svidaniya” has a hint of looking forward to meet your counterpart again.

Re: Do svidaniya, Igor, and thank you for Nginx

#60

It still surprises me that NGINX beat out Apache so quickly even though Apache had way more modules and was/is entirely free vs. NGINX which is more or less "open core" with some nice features requiring commercial licensing.

Back when the Apache was beaten there was no commercial licensing in Nginx.

Also the Apache that was beaten was Apache 1, which was fork-only, and that was the whole reason Nginx was written in the first place.

Then Apache did Apache2 with mpm modules and badly missed the mark. After that Apache was doomed. No async support == dead. It was that simple.

Post reply on HN