我是一名java Web应用程序开发人员,现在我在.net框架上工作。
当我在java web中工作时,我们使用tomcat / jboss来部署我们的应用程序。我以为tomcat / jboss是web服务器。
当我在asp.net工作时,我使用IIS来部署应用程序,然后我认为IIS是另一种Web服务器。
这些天,我正在学习rails,然后我听到了nginx。从谷歌,它也是一种网络服务器。
但是我发现有些人说我们可以一起使用nginx和IIS,或者其他组合。
现在,我很困惑,在我看来,Web服务器应该处理来自客户端的请求并返回结果。
每个Web服务器都应该有自己的版本,例如,tomcat for java,iis for asp.net。
但是为什么apache / nginx?
我想知道是否有人能为我解释一下?
答案 0 :(得分:11)
首先要做的事情是:“网络服务器”只是一个通过http(s)协议提供内容的软件。这是最低限度的功能。所以你抛出了很多额外的功能......
JBOSS / Tomcat不仅是一个“网络服务器”; tomcat提供了一个功能,让java应用程序响应发送到该服务器的请求,JBOSS更多,它提供了将您的软件“部署”到生产环境中的特殊技术,以及更多......
所有这些产品都具有“Web服务器”功能,但它们区分了http请求背后的内容,即产生“答案”的内容。
为了让您更加困惑,您可以在apache Web服务器中运行ASP.NET(必须使用“执行.NET代码”功能进行扩展)。当然,您可以构建所有这些产品的组合,因为代理可以使用http协议。例如,您可以使用apache Web服务器作为客户端访问点,对某些数据库进行身份验证,然后将请求转发到仅允许来自apache的连接的防火墙IIS服务器。因此,您可以在Windows服务器上实现可能不受支持的身份验证(或负载均衡器)......
希望清除一些东西......
抢劫