[HN Gopher] Do svidaniya, Igor, and thank you for Nginx ___________________________________________________________________ Do svidaniya, Igor, and thank you for Nginx Author : nrvn Score : 188 points Date : 2022-01-18 21:10 UTC (1 hours ago) (HTM) web link (www.nginx.com) (TXT) w3m dump (www.nginx.com) | granshaw wrote: | I remember the days circa 2009 when the Nginx docs pages still | had lots of Soviet-style graphics... those were the days :) | pupppet wrote: | What an impact, great job Igor! | schoolornot wrote: | 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. | qbasic_forever wrote: | The web changed. We moved away from static HTML pages and CGI | scripts to monolithic application servers in java, ruby, | python, etc. Apache excelled with these static content sites | and simple auth scenarios (remember .htaccess files?) but | became painfully complex proxying application servers. Nginx | was doing exactly what was needed at exactly the time it was | needed. | f311a wrote: | Which modules do you miss in nginx that are free in Apache? | masklinn wrote: | On the other hand, the unreadable weird-ass pseudo-XML | configuration files of Apache made anyone touching them wish | for something better. | | I also expect ngx_lua did _a lot_ for adoption, the fact that | you could always "shell out" to lua if you needed was a huge | boon even just for peace of mind. | nkozyra wrote: | > On the other hand, the unreadable weird-ass pseudo-XML | configuration files | | If I have one gripe about NGINX it's that its configuration | is a still-half-baked DSL that has quirks you wouldn't expect | and when they error you don't get great feedback. | | Examples: You can have an if clause, but no else attached. | You can't have an if clause with multiple conditions. | Finally, "if [might be] evil." 1 | | You end up writing a bunch of partitioned control flow | statements and you're never really sure at what level of | config hierarchy they would best be applied. | | I love the product but Apache's XML versus NGINX's semi- | declarative, hierarchical blocks aren't night and day better. | | 1 https://www.nginx.com/resources/wiki/start/topics/depth/ifi | s... | yesbabyyes wrote: | 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. | SkyPuncher wrote: | For me, the simplicity of Nginx is what beats it out over | Apache. | | I've always felt like Nginx "just works" by default and | creating configurations is relatively easy. | lstodd wrote: | 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. | jacquesm wrote: | Convenience is often worth a lot more than the ultimate in | flexibility. | | This is why email is now more or less the domain of a couple of | very large companies. | nkozyra wrote: | I really take for granted how well Nginx works across a number of | web backend functions. | | Some of the container/orchestration world has tried to supplant | the need for it as a reverse proxy, but you get so many goodies | out of the box just by sticking this in front of your app, and | for very little overhead. | | I remember the pre-Nginx days and all of the struggles people | routinely ran into with options like Apache or other reverse | proxy tools. | stormbrew wrote: | 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. | simonw wrote: | 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. | .. | danachow wrote: | 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. | MaxBarraclough wrote: | 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 | stormbrew wrote: | Seems likely an optimal algorithm could probably get | there just looking sequentially at the first three | letters in order. Would be an interesting code-golf. | univalent wrote: | Oh my gosh, I thought he passed away. | eliseumds wrote: | 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. | Suchos wrote: | Are you using Safari by any chance? I used to get a lot of | these on Safari, but issue is almost gone on Firefox. I think | it's connected to how Safari handles cookies. | [deleted] | shadowgovt wrote: | 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 | often. I suspect there's overlap between HN readers and use of | those sorts of tools, so I think there is a disproportionate | number of people around here who run into this issue (whereas | most "regular" folk almost never see a Cloudflare challenge / | response). | mastazi wrote: | > 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. | rzzzt wrote: | I always encounter a "random" stop-and-solve-me-a-visual- | puzzle when visiting an Australian forum related to SOHO | networking equipment. According to the description on the | challenge page, "completing the CAPTCHA proves you are a | human and gives you temporary access to the web property". | Thank you, Cf, I guess? | | (To be fair, consecutive requests don't get this treatment, | just the one in which I jump there from eg. a search result.) | petre wrote: | They are breaking the web, plain and simple. Google with AMP, | Cloudfare with their idiotic capchas. | shadowgovt wrote: | No server is obligated to vend my client data. | | More importantly: no server is obligated to vend data until | it falls over and dies, depriving _all_ users access to | that data if it isn 't mirrored. | | I think Cloudflare has honestly done an admirable job of | coming up with a novel solution to the problem of | loadbalancing and traffic-shedding in a world with a small- | but-persistent percentage of hostile actors. | shadowgovt wrote: | Impressive. I thought the only way you were allowed to quit | working on an open source project was to commit a new version | where you delete everything and introduce a chunk of code to put | clients into an infinite loop. I'm impressed Igor was able to | find an alternative. /s | | (More seriously though, his work is impressive and I hope his | next adventure is at least as fulfilling). | er4hn wrote: | Igor and the rest of the Nginx team achieved commercial | payments by offering premium modules. Later on they were | acquired by F5 networks. He achieved the goal. | hardwaresofton wrote: | One could only hope to build software as great as NGINX, keep it | up for 20 years and receive a send off like this. | | Bravo | devy wrote: | It took a good 5 minutes read of the entire blog post to | understand that "Do Svidaniya" is actually "Do Svidaniia" | (Russian), meaning "Goodbye". | ianai wrote: | I thought maybe it was somebody's name and just a really | horribly formed sentence. Because, ya know... | jacquesm wrote: | Listen to more Zemfira... | [deleted] | [deleted] | mxuribe wrote: | Thank you for all the you have done Igor! | zzt123 wrote: | Thank you Igor for Nginx. Love using it! | mobilio wrote: | To non-russian speaking users: "Do Svidaniya" means "Goodbye". | smarx007 wrote: | To add a bit more, "svidaniye" means a date, and "Do svidaniya" | literally means "till [our next] date". In English, "see you" | or "see you later" translates closest to the original phrase in | Russian. | Croftengea wrote: | "Do svidaniya" sounds more formal than "See you" though. | smarx007 wrote: | That is true, thank you for pointing it out. My personal | preference is "vsego Vam dobrogo", which is even more | respectful (it translates roughly as "All the kind (best) | to You"). | pvg wrote: | I think in general, it's probably best to avoid this kind | of etymological explanation of the 'actual meaning' of | some word or expression because they tend to obscure the | usage and, well, actual actual meaning. Saying 'goodbye' | in English doesn't really mean saying 'God be with you' | to someone, even though that's what it's originally a | contraction of. They're fine as etymology, of course! | hprotagonist wrote: | >Saying 'goodbye' in English doesn't really mean saying | 'God be with you' to someone | | except, of course, when it does. | | I regularly re-pronounce holiday as holy-day internally, | and the same with welcome and well-come; i am, of course, | a weirdo. | xvedejas wrote: | As a Russian learner, it seems a bit wrong not to | transliterate that as "vsevo Vam drobovo" even though I | understand that's not how it's spelled originally. For | whatever reason, that's what my brain is expecting. | smarx007 wrote: | I actually wanted to write "vsevo Vam dobrava" (o not | under stress often becomes a) but changed it to an | grammatical transliteration for some reason. | marginalia_nu wrote: | "Farewell"? | smarx007 wrote: | 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. | loeg wrote: | "Until we meet again" | rzzzt wrote: | Auf Wiedersehen! | smarx007 wrote: | 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 maltid" (lecker | Mahlzeit), as "smak" means taste in both languages. | egman_ekki wrote: | Doesn't it literally mean "Until we see each other [again]", | which is even closer to "See you"? | smarx007 wrote: | It does mean exactly that, though not literally (there are | only two words in the phrase literally). | [deleted] | app4soft wrote: | Here are relevant Russian discussions on OpenNET[0] & LOR[1]. | | N.B. From _Nginx_ company history on Wikipedia: | | > _On 12 December 2019, it was reported that the Moscow offices | of Nginx Inc. had been raided by police, and that Sysoev and | Konovalov had been detained. The raid was conducted under a | search warrant connected to a copyright claim over Nginx by | Rambler--which asserts that it owns all rights to the code | because it was written while Sysoev was an employee of the | company. On 16 December 2019, Russian state lender Sberbank, | which owns 46.5 percent of Rambler, called an extraordinary | meeting of Rambler 's board of directors asking Rambler's | management team to request Russian law enforcement agencies cease | pursuit of the criminal case, and begin talks with Nginx and with | F5._[2] | | [0] https://www.opennet.ru/opennews/art.shtml?num=56535 | | [1] https://www.linux.org.ru/news/opensource/16745652 | | [2] https://en.wikipedia.org/wiki/Nginx#History | avrionov wrote: | Was the case resolved? Wikipedia doesn't provide any further | information? | smarx007 wrote: | I think Wikipedia characterization is also incorrect. Igor | seems to have a permission directly from the CTO to open- | source the code, but 10 years later the company claimed that | the CTO was not in a position to do so. | chx wrote: | Yes, Wikipedia -- in broad strokes -- just sucks, check what | happened to the Scottish Wikipedia (but there are any number | of issues in the English one as well, the "no credentials" | policy made sure scientists shun it because they want to | argue with neckbeards with an agenda). | | Anyways, https://tadviser.com/index.php/Company:Nginx | everything is dropped in Russia, there's a lawsuit in the US | but at first the court dismissed the whole thing in 2021, I | expect that one go exactly nowhere. | pmontra wrote: | You can find a summary at | https://tadviser.com/index.php/Company:Nginx | | TL;DR: the Russian investigators closed the case of Rambler | Group against Nginx/T5 in 2020 "for the absence of a crime | event". Another company co-owned by the same owner of Rambler | Group started a case in the USA but it was dismissed by a | court in California in 2021. | [deleted] | nimbius wrote: | 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. unless | companies seek to reduce risk by bolting on a support | contract...why F5 at all? | | can someone from the biz side of the HN house chime in perhaps? | oneplane wrote: | 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. | nick__m wrote: | iRule are the things that makes the F5 appliance special, it | enables you to run TCL on a variety of events (ex: | HTTP_REQUEST, CLIENT_CONNECTED...). Some typical uses are | requests and responses modification, logging, bug fixes on | closed source web applications... I also the F5 device support | various permissions levels to enable delegation/separation of | administrative privileges. | ZoomZoomZoom wrote: | Wow, you usually don't start a headline with "do svidaniya", | unless it's for an obituary. | | Glad to see everything's fine. | rzzzt wrote: | My heart also skips a beat if I see a news article starting | with "<First> <Last>, <occupation>". | [deleted] ___________________________________________________________________ (page generated 2022-01-18 23:00 UTC)