What is the difference between apache / nginx / IIS

I was a java web application developer and now I am working on a .net framework.

When I work in a java network, we use tomcat / jboss to deploy our application. I thought tomcat / jboss is a web server.

When I work in asp.net, I use IIS to deploy the application, then I thought that IIS is another kind of web server.

These days I study rails, then I heard nginx. From Google it is also a kind of web server.

However, I found that some people say that we can use nginx and IIS together or some other combination.

Now, I am confused, in my opinion, the web server should process the request from the client and return the result.

Each web server should have its own correspondence, for example, tomcat for java, iis for asp.net.

But why apache / nginx?


By the way, I do not mean that apache / nginx is useless, I'm just not familiar with this.

I wonder if anyone can explain this to me?

+7
source share
1 answer

First of all: a "web server" is just a piece of software that serves content over the http (s) protocol. This is the minimum functionality. So, you have thrown many additional features ...

JBOSS / Tomcat is not only a "web server"; tomcat provides functionality for the java application to respond to requests sent to this server, JBOSS is much more, it provides special methods to "deploy" your software in a production environment, and much more ...

All of these products have the functionality of a "web server", but they distinguish what happens behind the HTTP request, which generates a "response".

To confuse you a bit more, you can run ASP.NET on the apache web server (which needs to be extended with tools for executing .NET code). And, of course, you can create composites from all of these products, since the http protocol can be used by proxies. For example, you can use the apache web server as a client access point that authenticates with some database, and then redirects requests to the IIS server with a firewall that only allows connections to apache. This way you can implement authentication (or load balancer), which may not be supported on your Windows server ...

Hope to clarify some things ...

take away

+11
source

All Articles