Live data from Hacker News

Nginx-1.14.0 stable version has been released

nginx.org

61–68 of 68 posts

Re: Nginx-1.14.0 stable version has been released

#61

Earlier quoted context omitted.

I think there's a common misconception with the term "push". HTTP2 doesn't push in terms of a push notification, but rather "pushes" assets down the connection that are known to be needed by the currently transferred document (whatever that may be). That way, the web server can pro-actively push the named stylesheet to the client as it knows that the stylesheet is needed to render the page. That way the client doesn'…

The main problem with http2 push and why it’s pointless is that it’s not cache aware. So you’re pushing unrequested data to everyone regardless. h2o tries to solve this problem with a special cookie. More here: http://blog.kazuhooku.com/2015/12/optimizing-performance-of-... But without something like that it’s a feature that will never really gain traction.

The danger here is that you push too much, but the actual response will still be delivered almost as fast (due to non-blocking behavior in HTTP/2 connections), so sure, it's not optimal, but there are a lot of use cases besides static assets where it is very useful.

Re: Nginx-1.14.0 stable version has been released

#62
post #59

Earlier quoted context omitted.

Nginx struggles at basic stuff like load balancing to microservice backends because of trivial stuff like DNS caching when running inside container orchestration platforms https://serverfault.com/questions/240476/how-to-force-nginx-... With the new ingress in Kubernetes & lets encrypt plugin, you probably do not need nginx anymore, if you're adopting containers. In fact, it can be a hindrance to adopting container or…

Sounds like it's more haproxy vs traefik or nginx vs Caddy. If you don't need a Web server, you should probably be using haproxy already;)

Haproxy, Nginx, kubernetes all implement layer 4 & layer 7 load balancing.

If you are aspiring to writing cloud native applications, there is not very compelling reasons to run reverse proxies in my opinion. If its possible to offload that responsibility to the cloud platform vs running your own infrastructure, that is highly desirable for some people.

Re: Nginx-1.14.0 stable version has been released

#63
post #50
post #46

Earlier quoted context omitted.

Common, how parsing things is easier, than gathering some very basic stats?

Gathering stats requires keeping them somewhere. Making inferences. Documenting the inference engine. Explaining the magic to users. Sounds a lot more complicated than explaining that what HTML tags will be parsed. Proxies are already complicated as is. Caching proxies more so. (Think of how Varnish has a - probably Turing complete - DSL to decide what to serve and/or cache and when, and how.)

Parsing HTML content won't get you the full benefit an inference engine would. An inference engine could easily learn that 90% of your users getting to your landing page are going to login & end up on their home screen so it would push the static resources for the home screen too. Similarly, it might know that it already pushed those resources previously in the session & only push the new static resources that are unique to you once you login (saving the round-trip of the client nacking the resource). Doing it via stateless HTML parsing is never going to work because you have no idea of the state of the session. That doesn't mean there's not a place for a mixture of approaches (& yes you could teach the HTML parsing about historical pushes but then you get back to the concern you raised about storing that data somewhere).

The HTML parsing approach is probably great from a 80% of the benefit for 20% of the effort on small-scale websites (i.e. majority). A super accurate inference engine might use deep learning to train what to serve on a very personalized level if you have a lot of users & the CPU/latency trade-off makes sense for your business model (i.e. more accuracy for a larger slice of your population). A less accurate one might just collect statistics in a DB & make cheap less accurate guesses from that (or use more "classic ML" like Bayes) if you have a medium amount of users or the CPU usage makes more sense and you're OK with the maintenance burden of a DB. It's a sliding scale IMO of tradeoffs with different approaches making sense depending on your priorities.

Re: Nginx-1.14.0 stable version has been released

#64

Earlier quoted context omitted.

I only have one question, why? I can understand picking one over the other start, but what motivation could you possibly have to actively ditch nginx altogether?

Nginx struggles at basic stuff like load balancing to microservice backends because of trivial stuff like DNS caching when running inside container orchestration platforms https://serverfault.com/questions/240476/how-to-force-nginx-... With the new ingress in Kubernetes & lets encrypt plugin, you probably do not need nginx anymore, if you're adopting containers. In fact, it can be a hindrance to adopting container or…

In particular, I highly recommend checking out Envoy and Linkerd, which enable service mesh architectures and can take the place of HAProxy, Nginx, etc.

Here are all service management projects that CNCF tracks: https://landscape.cncf.io/grouping=no&landscape=service-mana...

(Disclosure: I'm executive director of CNCF, which hosts Envoy and Linkerd, and created the interactive landscape.)

Re: Nginx-1.14.0 stable version has been released

#65

Earlier quoted context omitted.

I only have one question, why? I can understand picking one over the other start, but what motivation could you possibly have to actively ditch nginx altogether?

Nginx struggles at basic stuff like load balancing to microservice backends because of trivial stuff like DNS caching when running inside container orchestration platforms https://serverfault.com/questions/240476/how-to-force-nginx-... With the new ingress in Kubernetes & lets encrypt plugin, you probably do not need nginx anymore, if you're adopting containers. In fact, it can be a hindrance to adopting container or…

Any docs on the new ingress and kubernetes plugin? All I find is kube-lego which is quite old already.

Re: Nginx-1.14.0 stable version has been released

#66
post #50

Earlier quoted context omitted.

Gathering stats requires keeping them somewhere. Making inferences. Documenting the inference engine. Explaining the magic to users. Sounds a lot more complicated than explaining that what HTML tags will be parsed. Proxies are already complicated as is. Caching proxies more so. (Think of how Varnish has a - probably Turing complete - DSL to decide what to serve and/or cache and when, and how.)

Parsing HTML content won't get you the full benefit an inference engine would. An inference engine could easily learn that 90% of your users getting to your landing page are going to login & end up on their home screen so it would push the static resources for the home screen too. Similarly, it might know that it already pushed those resources previously in the session & only push the new static resources that are un…

Yes, I agree, that of course a hypothetical ML/AI outperforms any naive and simple solution. But usually magic technology is required to do that, otherwise it wouldn't be magic :)

That said a simple heuristic like "after requesting an URL the server got these requests on the same HTTP/2 connection in less than 1 second, and those were static assets served with Expires headers" could work.

Re: Nginx-1.14.0 stable version has been released

#67

It appears that the default build does not check for libc support of Full RELRO and PIE. Are there any plans to add checks for this, or is it assumed that everyone sets the right CFLAGS and LDFLAGS? I know that Debian, Ubuntu, Gentoo, Alpine and Fedora package build specs do this by default today. The reason I ask is that I see a lot of people build this themselves and run it from docker. I am concerned that they are…

I forgot to mention, if you want to check your existing daemons for these protections, either apt/yum install "checksec", or grab the script from it's maintainer [1] to check running daemons or files.

[1] - https://www.trapkit.de/tools/checksec.html

Re: Nginx-1.14.0 stable version has been released

#68
post #66

Earlier quoted context omitted.

Parsing HTML content won't get you the full benefit an inference engine would. An inference engine could easily learn that 90% of your users getting to your landing page are going to login & end up on their home screen so it would push the static resources for the home screen too. Similarly, it might know that it already pushed those resources previously in the session & only push the new static resources that are un…

Yes, I agree, that of course a hypothetical ML/AI outperforms any naive and simple solution. But usually magic technology is required to do that, otherwise it wouldn't be magic :) That said a simple heuristic like "after requesting an URL the server got these requests on the same HTTP/2 connection in less than 1 second, and those were static assets served with Expires headers" could work.

Yes, like I said there's a sliding scale of effort/reward & HTML parsing is on the extreme of one end.
Post reply on HN