28 ms·
Do svidaniya, Igor, and thank you for Nginx
- jakub_g 5y agoFun story time: a few years back I worked at a major EU "traditional" (non-FAANG) IT company, and they were using Apache for handling web traffic. Rumour was that nginx, being already a backbone of half of internet, was dismissed as "too new" :) (we're talking mid-2010s)
- lmilcin 5y agoWaiting for everybody else to test the product before you migrate is perfectly common sense strategy. Especially if that product does not give you any special edge over competition.
- nkozyra 5y agoBy the mid 2010s it had definitely proved its mettle. Arguing that it wouldn't have provided enough benefit to justify the switch is different than saying it was unproven by that point.
- lmilcin 5y agoI think some of the pressure to update products is irrational. Just because something is newer and better is not yet reason to upgrade. If Apache did everything they needed I can imagine a company to completely forgo investigating Nginx and this might have been cause of that kind of statement. Or maybe this was just a way to explain it to younger devs who could not understand "don't break it if it works". We don't know. The correct way to decide this kind of decision (and many other) is to look at the RoI and your available bandwidth to run multiple projects. I am still keeping some very old (but still actively developed) products. I am busy with other projects and there just have not been any pressure to update. When I have some time available I prefer to choose a project with highest RoI rather than update stuff because of peer pressure.
- nkozyra 5y agoWell I think you and I are saying the same thing. Don't chase the shiny new thing. That said, by that time Nginx was a proven performance upgrade over Apache 1.x and 2.x. Quantifying that value is tough but it certainly had value attached to it.
- lmilcin 5y agoWhether there is any value depends heavily on your application. If your Apache is responsible for 0.1% of your costs then this is at most what you can save, even if Nginx was magically zero cost (like zero to install, maintain, zero computing resources, zero outages, zero hiring, zero project risks, etc.) From my experience, most projects have way more important problems to solve and better opportunities to pursue than chase those very small improvements. Frequently it does not matter if one is 10 or even 100 times faster than the other.
- nkozyra 5y agoAgain, we don't disagree. But the purported reason for rejection was the newness of Nginx.
- goodpoint 5y agoNo, switching creates risks. Risk of configuration errors leading to downtimes or vulnerabilities, risk of unexpected delays in deployment, risk of running into bugs that the users are unaware of. Many software projects fail by facing delays due to excessive complexity and tech churn. Moving carefully helps.
- nkozyra 5y ago> No, switching creates risks. Absolutely - but again, that's apparently not why NGINX was dismissed as an option.
- deleted 5y ago[deleted]
- madrox 5y agoI think the irony is that newness is irrelevant once it's being used at a certain scale. You can battle test more in an hour than you could a small scale project in ten years.
- aargh_aargh 5y agoHow do you battle-test in an hour the ability of the upstream developer to provide security fixes? To provide updates at all as the ecosystem develops (e.g. the rise of systemd, taking advantage of advancements in worker models, SSL library API changes, new Lua versions)? Ability to keep backward compatibility with modules? Your approach might have led you to invest heavily in lighttpd at some point in time.
- goodpoint 5y agoAlso: how do you battle-test a security track record? It takes years to to tell if serious vulnerabilities are being found often or not.
- philliphaydon 5y agoHaha that reminds me of a company I worked at that used some MS library for .net. I think it was like Microsoft.WebMatrix.Data It essentially was a micro ORM written using dynamic but had no caching so it performed terribly with all the reflection. It was a drop in replacement to use Dapper. But dapper was dismissed due to it being “Demoware” despite it running stackoverflow. I left that place 2 weeks later.
- INTPenis 5y agoThis story really shows the hype of nginx. It wasn't the backbone of half the internet until 2021. Don't get me wrong, I am an nginx user now for the past decade at least but when it first came out I was very skeptical. People were saying apache was too bloated but you could already run apache with as few modules as possible so that was a false argument. Then there was the c10k challenge of course. Basically, a lot of hype for nginx but it came out on top in the end so I guess it doesn't matter.
- zzt123 5y agoThank you Igor for Nginx. Love using it!
- mobilio 5y agoTo non-russian speaking users: "Do Svidaniya" means "Goodbye".
- smarx007 5y agoTo 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 5y ago"Do svidaniya" sounds more formal than "See you" though.
- smarx007 5y agoThat 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 5y agoI 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 5y ago>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.
- app4soft 5y agoHere 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 https://www.opennet.ru/opennews/art.shtml?num=56535 [1] https://www.linux.org.ru/news/opensource/16745652 https://www.linux.org.ru/news/opensource/16745652 [2] https://en.wikipedia.org/wiki/Nginx#History https://en.wikipedia.org/wiki/Nginx#History
- deleted 5y ago[deleted]
- avrionov 5y agoWas the case resolved? Wikipedia doesn't provide any further information?
- chx 5y agoYes, 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 don't want to endlessly argue with neckbeards with an agenda). Anyways, https://tadviser.com/index.php/Company:Nginx 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.
- avrionov 5y agoThank you. This was a great source.
- pupppet 5y agoWhat an impact, great job Igor!
- schoolornot 5y agoIt 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.
- f311a 5y agoWhich modules do you miss in nginx that are free in Apache?
- masklinn 5y agoOn 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 5y ago> 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/ifisevil/ https://www.nginx.com/resources/wiki/start/topics/depth/ifis...
- taf2 5y agoWith the rewrite and map blocks it is maybe a little easier for you to write fewer if statements…. https://stackoverflow.com/questions/47724946/nginx-rewrite-by-map-with-parameters https://stackoverflow.com/questions/47724946/nginx-rewrite-b...
- nkozyra 5y agoI 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 5y agoI 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 5y agoThe 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.riceonfire.org/emiller/nginx-modules-guide.html https://web.archive.org/web/20070505051653/http://www.riceon...
- danachow 5y agoDoes 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 5y agoDoing 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 https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
- eliseumds 5y agoPeople 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.
- deleted 5y ago[deleted]
- shadowgovt 5y agoCloudflare 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).
- petre 5y agoThey are breaking the web, plain and simple. Google with AMP, Cloudfare with their idiotic capchas.
- shadowgovt 5y agoNo 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.
- rgbrgb 5y agoOne might argue that it's the abusive actors Cloudflare blocks who are breaking the web.
- shadowgovt 5y agoImpressive. 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 5y agoIgor 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 5y agoOne 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 5y agoIt took a good 5 minutes read of the entire blog post to understand that "Do Svidaniya" is actually "До Свидания" (Russian), meaning "until next time/Goodbye".
- deleted 5y ago[deleted]
- deleted 5y ago[deleted]
- ianai 5y agoI thought maybe it was somebody's name and just a really horribly formed sentence. Because, ya know...
- jacquesm 5y agoListen to more Zemfira...
- p2t2p 5y agoWanna me to kill the neighbours that won't let you sleep? Vow, for a rare occasion that one translates rather nicely.
- leeoniya 5y agoi speak russian fluently and still parsed the title as "Do" + <indian name>
- symb0lik 5y agoI'm not fluent, but I've been studying for 3 years now. I hate when people use latin characters to 'sound out' russian words. When I see Cyrillic, my brain immediately switches to Russian. When it's latin sounding out Russian, it takes a stupid amount of time for me to realize and comprehend what they are trying to say.
- 5y ago
- mxuribe 5y agoThank you for all the you have done Igor!
- ZoomZoomZoom 5y agoWow, you usually don't start a headline with "do svidaniya", unless it's for an obituary. Glad to see everything's fine.
- rzzzt 5y agoMy heart also skips a beat if I see a news article starting with "<First> <Last>, <occupation>".
- deleted 5y ago[deleted]
- nimbius 5y agounrelated 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 5y agoI 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 5y agoiRule 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.
- snowwrestler 5y agoI will say that as someone who managed a leased hosting environment years ago, we dropped our expensive F5 device once it became clear we could do the same load balancing in Nginx for the cost of a virtual server. Even with a small support contract from Nginx it was way cheaper.
- merps 5y agoWell, if may offer a view.. your are correct in your second paragraph the aspect that most people miss is that F5 is not only an enterprise product but primary systems (energy/gas/etc) and Telco (3/4/5G). The acquisition of NGINX is to complement that footprint. Just a different view.. be well yeah..
- 5y ago
- granshaw 5y agoI remember the days circa 2009 when the Nginx docs pages still had lots of Soviet-style graphics... those were the days :)
- nathansherburn 5y agoI'd love to see this if anyone has a screenshot from this era!
- luhn 5y agoMaybe these graphics? https://web.archive.org/web/20090228234133/http://wiki.codemongers.com//Main https://web.archive.org/web/20090228234133/http://wiki.codem...
- granshaw 5y agoYup, look at that logo especially!
- nathansherburn 5y agoLove it! Thank you for sharing!
- mmaunder 5y agoYeah that was great. I think we all felt like we had a secret superpower few others knew about.
- univalent 5y agoOh my gosh, I thought he passed away.
- YPPH 5y agoSame. An editorialised title may have been preferable, but I understand the rules here generally don't allow that.
- CRConrad 5y agoAn inserted translation of the literal meaning might have been allowed, since the rules also say (ISTR) that this is an English-language website. Colloquialise that from the formal exact "Til we meet again" to be a bit more informal (because that can still be read as "...in Heaven"), and you'd get something like "Do svidaniya (=See you later), Igor, and thank you for Nginx" ...which probably would have been much less likely to make half the readers start to tink he'd died.
- _8j50 5y agoI still remember when it was new and so small a novice can review it without a headache. It was to me the answer to attacks like slowloris and C10K problem. And the config, by far much more pleasant than apache or IIS. I use it to reverse proxy all the time! Thank you Igor and best wishes.
- _8j50 5y ago[flagged]
- dang 5y agoIt was downvoted because you originally posted it to the wrong thread (https://news.ycombinator.com/item?id=29981188 https://news.ycombinator.com/item?id=29981188, instead of https://news.ycombinator.com/item?id=29985871 https://news.ycombinator.com/item?id=29985871). I've moved it to the right thread now. Can you please review the site guidelines and stick to them in the future? You broke more than one of them badly here. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- _8j50 5y agoSorry
- lifeisstillgood 5y agoI know this is massively off-topic (have a good well paid "retirement" Igor), but I assumed that it would be written as Dos Vidaniya instead of (the correct) Do svidanyia My Russian studies is limited to listening to Sean Connery in The Russia House, and I guess I took Dos from the latin languages. Odd.
- osipov 5y ago
- jjtheblunt 5y agodo (till) svidaniya (seeing, i think it's called gerundive in english grammar)
- piskov 5y agoDo (до) is basically “till” Svidaniye (Свидание) has several meanings: - most common modern single-word usage is for date as in “romantic date” - archaic is for “meeting” that remained in this goodbye form. So “do svidaniya” is literally for “till we meet again” :-)
- Tade0 5y agoI wonder why is it romanized to "do", when it's read as "da"?
- tgv 5y agoEnglish. The answer is almost always English, and its "quirky" way of transliteration.
- pezezin 5y agoI don't think so. From what little Russian I know, the original is до свидания, with an O, but in most dialects an unstressed O is pronounced A: https://en.wikipedia.org/wiki/Russian_phonology#Unstressed_vowels https://en.wikipedia.org/wiki/Russian_phonology#Unstressed_v...
- mwcampbell 5y ago> a novel architecture Is this simply referring to event-driven I/O (using select, epoll, or the like), or something else? I'm pretty sure event-driven, as opposed to forking or thread-per-connection, web servers were well established by 2002, though perhaps primarily in commercial products like Zeus.
- uticus 5y agoI also wondered this. Similar: > In particular, Igor sought to solve the C10k problem – handling 10,000 concurrent connections on a single server – by building a web server that not only handled massive concurrency but could also serve bandwidth‑hogging elements such as photos or music files more quickly and efficiently. ...I'd love to hear more details
- davewongillies 5y agohttps://www.aosabook.org/en/nginx.html https://www.aosabook.org/en/nginx.html
- vbernat 5y agoThere is also the worker model and the zero-impact reload (but I don't know if Zeus had that too).
- contravariant 5y agoIs the title a reference to hitchhiker's guide to the galaxy or is that too far-fetched?
- CRConrad 5y agoI half-suspected that it might be, but have no data to support that hunch. Guess it partly depends on how "So long" translates into Russian; was the title there "Do Svidanya, and thanks for all the fish"?
- bigdict 5y agoHa, I didn’t read it like that but now I see it totally could have been a reference.
- FpUser 5y agoAll my business servers are fronted by Nginx. I can't thank you enough Igor for such immense contribution to developers.
- karaterobot 5y agoIt's so cool that they wrote a little biography of him. As they say, his software powers the majority of websites on the planet: that's such a huge accomplishment, but normally not for the kind of job that gets biographies written about it.
- yesimahuman 5y agoAs an open source developer and commercial OSS startup founder myself, Nginx gave me a lot of confidence to challenge status quo. Apache was so revered that you would have been crazy to think you could improve it, but he did and that really had an impact on me.
- mythz 5y agoJust want to give a Hat tip to Igor and say thanks for giving the world Nginx, which I've successfully been using it to power production Linux for over a decade.
- mmaunder 5y ago“Igor has chosen to step back from NGINX and F5 in order to spend more time with his friends and family” I wonder what this is really about. Either way Nginx is the reason myself and many others were able to survive without raising venture capital because we didn’t need a massive horizontal cluster of Apache servers consuming 20 to 100Mb per concurrent connection. Personally I scaled above 100k current connections on a single front end nginx box with 6 Apache application servers on the back end in 2007 thanks to Igor’s incredible work. He really has made a massive contribution to the fundamental plumbing of the Web and should be recognized for it.
- bpodgursky 5y agoIt's been 20 years, it could be true. Usually not, but that's the nice part of this kind of letter; it's always plausible.
- anyfoo 5y agoUsually? But then I wonder what it would say if it were the case? Hopefully in the majority of cases, things do end this "boringly".
- bpodgursky 5y agoPlaying the numbers, most founders move on through a couple new ventures before retiring to hang out with friends and family. I'm not saying "usually" like it's 98%... more like 70% odds.
- wpietri 5y agoI think it's usually true. But that's what makes it so useful to people casting around for something to cover for reasons that might be less savory or less pleasant. And that resulting contrast means we really notice it in high-profile cases as an excuse, making it almost a cliche.
- anyfoo 5y ago> I wonder what this is really about. Maybe just that? That's pretty much what retirement is about, also. Doesn't say that Igor won't work on personal or even non-personal projects at all, just that more time will be available for, well, friends and family.
- aaron695 5y ago
- deleted 5y ago[deleted]
- blunte 5y agoI started with Apache long ago, and then I moved to Nginx. 15+ years have passed. Why did Apache never become a real competitor? I didn't A/B test with Apache and Nginx - I just read slashdot and later HN, and I trusted people who ran much bigger sites. But how could Nginx take such a lead that Apache could never catch up to?
- vmurthy 5y ago>I just read slashdot and later HN, and I trusted people who ran much bigger sites. But how could Nginx take such a lead that Apache could never catch up to? I read that in the last 10 years or so, this is what has happened to other successes like Slack etc : The users are becoming the decision makers as opposed to CXO handing down tools. I think developer advocacy was one of the major reasons.
- toast0 5y agoYou can do a lot with the the one process per connection model of Apache 1.3 and 2.x mpm-prefork, but there are some limitations. But I think the code reorganization to support all the different mpms was a lot of work, and not a lot of benefit for everyone, so some organizations stayed with 1.x. There's a lot of jack of all trades in Apache, but if you want to handle specific conditions, you really need to tune it properly. And some of the out of the box stuff was just wrong. If you're pre-forking, you really shouldn't scale the number of children up and down, it should always run the maximum number you want to run (whatever that is). Because a connection ties up a child, you need to do a bunch of stuff to limit the time you need apache to be touching the request; you really should run an os with accept filters, and not touch the connection until the request is ready; you need a large socket buffer so you can write the whole response and close the socket and let the OS finish sending it while Apache works on the next request; you also need to disable http-keepalive (or do something crazy; Yahoo had a 'cheapalive' daemon that would pass client sockets back and forth with (y)apache --- when the connection was idle, pass to cheapalived which puts it into a select (or kqueue/epoll, I don't remember) loop; when a socket had data to read, it would be sent back to (y)apache to process the request. But the apache documentation wouldn't guide you into any of this, really. You'd try a normal seeming config, get things that worked, until it got busy, then spun up too many children and ground to a halt, probably swapping excessively on the way. Or just had too many people trying to do keep-alive and have 0% cpu and doing nothing. Or maybe spinning your wheels trying to get threaded mpm's to work (but they don't work with most of the popular mod_X's anyway). The market seems to be telling us that a big kqueue/epoll is the solution we want, but well tuned pre-fork can also do a lot; it kind of depends on if your bottleneck is the http server or if your bottleneck is your application code. If you've written your application code well enough that the http server is the bottleneck; congratulations! (or you might be a static content server, but then your bottleneck might well be your NICs or your OS TCP stack)
- da39a3ee 5y agoThis motivated me to learn a little bit about nginx architecture. This article is nice: https://www.nginx.com/blog/inside-nginx-how-we-designed-for-performance-scale/ https://www.nginx.com/blog/inside-nginx-how-we-designed-for-... Why are the nginx workers implemented as processes sharing memory, rather than threads? Is that so they can have different privileges in the Linux permissions/ownership model? Is it easy to create multiple processes sharing memory in Linux? How do I go about doing that?
- javajosh 5y agoBut is it pronounced "Ee-gore" or "Eye-gore"? https://www.youtube.com/watch?v=RyU99BCNRuU https://www.youtube.com/watch?v=RyU99BCNRuU
- orthoxerox 5y agoEe-gor, with r a palatalized alveolar tap.
- aprao 5y agoCan someone summarize what allowed nginx to surmount the C10K problem? Was it some clever trick or just good software design?
- taterbase 5y agoIf memory serves me, nginx succeeded by relying on epoll primitives for handling many connections rather than spinning up a thread per request by default like apache did at the time. That was the big difference back then. These days I imagine Apache has adopted/honed these same techniques.
- mdasen 5y agoYep, epoll was a big part of it making it work around async io rather than threaded. If someone is interested in reading more, "Flash: An Efficient and Portable Web Server" is a good read on the topic: https://www.usenix.org/legacy/events/usenix99/full_papers/pai/pai.pdf https://www.usenix.org/legacy/events/usenix99/full_papers/pa.... It has no relation to Adobe Flash. epoll has the advantage of operating in O(1) time rather than O(n) time as well which becomes important when you have a lot of file descriptors. I'd also note that epoll landed with Linux 2.6 so it wasn't really available before 2004. Apache Server was created in 1995 long before epoll and Nginx was initially released in 2004. It's one of those situations where you introduce new capabilities like epoll being able to handle lots of FDs in O(1) time and someone finds a way to use that capability to make something great.
- 5y ago
- sydthrowaway 5y agoNow if only Putin and Biden could follow this model and cooperation for the greater good
- achillean 5y agoIn January 2021, Nginx took over Apache as the #1 web server on the Internet that users can install: https://i.imgur.com/pjU1G61.png https://i.imgur.com/pjU1G61.png https://trends.shodan.io/search?query=http+port%3A443#facet/product https://trends.shodan.io/search?query=http+port%3A443#facet/... I'm a bit surprised it didn't happen earlier as it feels like it's been the dominant choice for tech people.
- vallavaraiyan 5y agoWordpress had some say in this i think.
- berkes 5y agoDefinitely. I've founded and grew several webhosters, one specialised in WordPress. Our HTTP stack was varnish->nginx(loadbalancer)->nginx->phpfpm. It was pain. Not even WordPress core could (can?) run all its features; e.g. the SEO-friendly-URL thing relied (relies?) heavily on - I kid you not - rewriting the .htaccess file from the CMS: really: the CMS rewriting webserver configuration files from the web. Let alone all the plugins and themes. The community of plugin and theme devs is generally professional, but there is a staggering amount of stupidity found. Like a payment-processing plugin that would write all its payments into [bankaccount-number].txt files. Web-readable. Obviously a severe security breach for one of our clients. The plugin-devs reaction? "Not a bug: we include a .htaccess that denies access to those text-files. So no-one can read them but the plugin". I can't even... Point being: WordPress is highly coupled to Apache. If you want smooth experience of hosting, just go for Apache. Or don't use WordPress. I'd advise the latter.
- the-dude 5y agoI don't recognize anything about the WP Apache marriage.
- berkes 5y agoWith nginx becoming more popular this may have changed. But I just looked, and the official lesson on "installing wordpress" mentions only Apache[0]. As does the "how to install WordPress"[1]. Though checking a recent download, I see that it no longer ships with .htaccess by default, so apparently things are changing. [0] https://learn.wordpress.org/lesson-plan/local-install/ https://learn.wordpress.org/lesson-plan/local-install/ [1] https://wordpress.org/support/article/how-to-install-wordpress/ https://wordpress.org/support/article/how-to-install-wordpre...
- graderjs 5y agoI'm an experienced dev with a deep knowledge of full stack web as well as infrastructure but I've never put nginx in front of any app. I want to but I honestly avoided it because I thought it was difficult. This may not be the right place to ask but is there a good guide for someone who's deep into nodejs who just wants to set up nginx on Debian in front of a node server with https? and just see how it goes.
- davidzweig 5y agoNGINX course on https://acloudguru.com/ https://acloudguru.com/ is good.
- kkiinnpptt 5y agoIt's not that hard. DigitalOcean has good guides.
- fdfsdfasdfd 5y agoI'm just a fool on the internet, but if your appserver is NodeJS, you might want to consider HAProxy over nginx (I say this as a fan of nginx). The reason being that (unless my information is stale), NodeJS will happily accept all the connections thrown at it, eventually causing each connection to be starved of compute capacity and finally falling over. HAProxy is able to keep a connection queue and feed a maximum of (for example) 4 concurrent requests to the backend(s), thus providing back-pressure to incoming requests. Makes it a lot easier if you need to eventually scale your app horizontally, too.
- graderjs 5y agoThank you, that's good advice.
- CrLf 5y ago> HAProxy is able to keep a connection queue and feed a maximum of (for example) 4 concurrent requests to the backend(s), thus providing back-pressure to incoming requests. NGINX can do this as well, either with the "max_conns" parameter for upstreams, or (trickier, but perhaps more effective when the upstream is async) in combination with rate limiting: limit_req_zone $server_name zone=root:10m rate=100r/s; limit_req_status 429; location / { limit_req zone=root burst=100 delay=4; }
- harikb 5y agoWith Almaty, Kazakhstan in the news recently because of protests [1] , I thought this part was interesting > Igor came from humble beginnings. The son of a military officer, he was born in a small town in Kazakhstan (then a Soviet republic). His family moved to the capital Almaty when he was a year old. [1] https://www.bbc.com/news/world-asia-59927267 https://www.bbc.com/news/world-asia-59927267
- gostsamo 5y agoAll the soviet republics are former imperial Russia territories and have substantial russian minorities. Of course, Russia would never admit doing colonization like its western counterparts, but just spreading culture and civilization around.
- RadixDLT 5y agothis guy is not an ethnic Russia by the way, he is also not Kazakhs either
- lngnmn2 5y agoYes, this is the kind of a story which are being dramatised in movies - a highly functioning autism, habit of attention to details and principial insistence on doing thing "just right" and enough free time and lack of distractions (by degens) to carry it on. I remember when I saw the nginx code for the first time - I was so impressed that I wanted to build libnginx.a (of core data structures) for my own projects. Never happened. The only comparable story I know is Rob Pike - similar principles and obsessions of doing just right, which, in turn, is related to good mathematics of finding and using just right abstractions by generalising from actual pattern. If you want to learn C programming (and programming in general) read nginx and unit(nxt). Look how systematic, minimal and just right is everything. I like to than Igor for teaching me and being an example.
- tryauuum 5y agoI remember watching a video from some conference where Igor participated. As soon as he says "Hello, I'm Igor Sysoev, creator of nginx" the audience bursts with extra-long applause. He even had to tell them "Come on guys, you haven't heard my presentation yet"
- a_c 5y agoWould love to see that talk!
- scotty79 5y ago> Do svidaniya I wonder if using English letters to write Russian phrases is acceptable practice for native Russians. Does it sound respectful, neutral or like a mockery? I don't mean in context of that post, which obviously is respectful, but in general. Especially when unicode is a thing and you could just write до свидания
- lostmsu 5y agoThat depends on the person who is listening/reading.
- mongrelion 5y agoIt's common practice amongst Russian/Ukrainian/Belorussian/Bulgarian speakers to write in Latin alphabet when Cyrillic is not available. I know for a fact that this is taught at school in Russia. Not sure if in other countries.
- forkerenok 5y agoI think it depends :) Back when texting (SMS) was still a big thing, you had a choice to either write in English letters and enjoy 140 char limit per message or write in Cyrillic and have it reduced to 70 chars. Many were doing the former. I assume many other countries with non-latin alphabet had the same.
- ilya_m 5y agoNative Russian speaker here. It is a perfectly acceptable and common practice when one wants to include Russian phrases in an otherwise non-Cyrillic text. "Doveryai no proveryai", etc.
- taubek 5y agoIt always amazes me to see that even big projects star from one idea, from one person.
- kubafu 5y agoThanks Igor for making a difference! I've always been after simple tools that do their job well, and, for the past 15 years, nginx was always one of them. Good luck with everything that comes next for you.
- hericium 5y agoI can't help having bad feelings about this. The first thing I could think of was what Google has become during the post-Brin-Page era. I hope I'm wrong but this could be an indicator of some changes F5 is about to introduce.
- sbarre 5y agoI mean, as soon as F5 bought nginx you could have predicted that.
- rplnt 5y agoMy first HN post was "Nginx established as a company"[1]. I guess this starts the third chapter? 1. https://news.ycombinator.com/item?id=2776622 https://news.ycombinator.com/item?id=2776622
- codermojo17 5y agoIt's a pity they chose to ignore cloud native and got completely overtaken by Envoy. Legacy software now, and Unit has been worked on for almost 6 years and nobody uses it or knows about it.
- wolfi1 5y agoam i a bad person that by the mentioning of "Igor" I'm immediately reminded of Young Frankenstein?
- ospzfmbbzr 5y agoAfter suffering for years with Apache in the late 90s and early 2000s NginX was nothing less than a revelation. Thank you so much Igor.
- pflanze 5y agoA side note left out in the history mentioned here is that Igor first[1] developed two third-party modules for Apache, mod_deflate and mod_accel[2]. I think especially the latter was a big step towards NGINX already. It was a much more capable replacement for the mod_proxy module that was bundled with Apache, and that would slurp up the response from the server as fast as it could, storing it in a local file cache while starting delivery to the client immediately (and optionally re-use the cache for future requests); it freed up the back-end server quickly, which was very helpful to reduce the number of concurrent processes in a system that used fork (as the Perl based systems I was working on did). It made performance better than FastCGI (as at least the Apache FastCGI implementation would not do the step of slurping up the response and copying it to a temporary file, and thus tie down the back-end process until the response was fully delivered to the client). My interpretation of the history is that Igor first solved the scalability problems for a direct need (IIRC he was working for a large Russian website at the time[3]), while doing that probably realized that the Apache code base could be replaced whole-sale to do more than just HTTP proxying, and introduced the async approach to make it scalable itself, too. [1] IIRC I saw the public NGINX announcement a few months after starting to use mod_accel. [2] Amazingly the page is still up: http://sysoev.ru/en/apache_modules.html http://sysoev.ru/en/apache_modules.html (and it is still linking to the "Babelfish English translation" that I made by auto-translating and manually cleaning up the docs and that I hosted on a DynDNS domain that I've long since lost). [3] Rambler, from reading the other comments here.
- wejick 5y agoI still remember pronouncing it as nging-eks, not engine-eks.
- strzibny 5y agoI chose NGINX as a web server in my book, because if you don't know what to use, use NGINX. Thanks Igor for all your work!
- AcerbicZero 5y agoYou’ll be missed pal.
- devl547 5y ago"At last!" - said Igor and installed lighttpd ;)
- boublepop 5y agoSo reading between the lines, the commercial aspirations won out over the core ideals of the creator who is now being pushed out completely, likely with some form of compensation package to not make a big fuzz, so they can now dive headfirst in a pool of money while abandoning any open source ideals? So natural question, how long until they start squeezing more money out of users and how severe will it be for hobbyists and small companies?