nginx到底是什么?与IIS的区别?

我一直使用的是C#语言进行开发BS程序。IIS是我的WEB服务器。在这里我也不知道IIS到底是什么。因为它可以处理请求同时也能与后端进行交互。
而最近在学习前后分离的时候,看到了Nginx,自己也会一点python,突然看到nginx只是负责处理请求,然后将请求经过处理发送给APP服务器,我感觉可能就是与后台产生联系的服务器,比如uwsgi。那么
我是否可以将IIS能做的事情想成是nginx+uwsgi加起来做的事情。
因为IIS既可以处理请求,也可以以后台交互,我写的C#代码就是发布后就放在了IIS上,还是说
IIS是处理请求的,而真正处理代码那块的是.Net FrameWork?

阅读 12.9k
1 个回答
我感觉可能就是与后台产生联系的服务器,比如uwsgi

uwsgi 不是必须的,它只是中间又加了一个“网关协议”而已。

我是否可以将IIS能做的事情想成是nginx+uwsgi加起来做的事情。

iis 在“网络层面”能做的事,就是 nginx 做的事,不需要考虑 uwsgi 。

IIS是处理请求的,而真正处理代码那块的是.Net FrameWork?

我不是太清楚,也许, iis 除了是一个“反向代理服务器”之外,还是一个“容器”。

首先,你要搞清楚网络协议,这里说的,可能包括 http ,及其它网关协议,网关协议有 fastcgi , wsgi 等。
然后,你要明白,网关协议产生的背景,为什么需要搞一个网关协议出来。
接着,去了解一下,你写的应用层代码,部署之后,它本身是处理的什么协议。 C# 不清楚, Python 中,部署不同,应用层直接处理的协议是不同的,有可能是 wsgi ,有可能直接是 http 。
最后,就 nginx 与 Python 这套来说,部署不同,nginx 的角色也不同。它可以直接反向代理,转发 http 。也可以作为 web 服务,转出去是网关协议。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题