Nginx主要用做静态内容服务和代理服务器,直接将外来的请求转发给后面的应用服务器;Tomcat更像是一个应用容器。
第二、nginx和Apache的区别
Apache是同步多进程模型,是可以一个连接对应一个进程,而nginx属于一步的,多个连接可以对应一个进程。
Nginx轻量级,抗并发,处理静态文件好;Apache稳定性好,对PHP支持比较简单,nginx还需要配合其他后端进行使用,处理动态请求上更有优势。
建议使用前端nginx抗并发,后端Apache集群,配合起来效果会更好。
第三、Tomcat和Apache的区别
Apache由C语言实现,支持各种特性和模块从而来扩展核心功能;Tomcat是Java实现的,可以更好地支持servlet和jsp。
Apache也是普通的服务器,本身只支持HTML静态普遍网页,不过可以通过插件来支持PHP等;Tomcat是jsp/servlet容器,支持HTML、jsp、asp、PHP、CGI等。
Apache侧重于>
web服务器重要的的任务之一就是服务静态资源文件,比如网站的,还有一些静态的HTML页面,本文的例子还是来自于Nginx官网。在这个用例中我们要配置两个静态资源路径,来处理外部的静态资源请求。我们会更改配置文件中,server块下>在介绍nginx和uwsgi的区别和作用之前我们先介绍一下几个概念
1WSGI
WSGI的全称是Web Server Gateway Interface(Web服务器网关接口),它不是服务器、python模块、框架、API或者任何软件,只是一种描述web服务器(如nginx,uWSGI等服务器)如何与web应用程序(如用Django、Flask框架写的程序)通信的规范、协议。
server和application的规范在PEP3333中有具体描述,要实现WSGI协议,必须同时实现web server和web application,当前运行在WSGI协议之上的web框架有,Flask, Django。
2uWSGI
uWSGI是一个全功能的>
在杜赛的博客中,对Django+Nginx+Gunicorn这三兄弟的描述是这样的:
如果用餐馆来做比喻的话,Nginx 就是迎宾,客人如果点了酒水,迎宾自己就帮忙拿了;而 Gunicorn 是传菜员,Django 是厨师,他两一起满足客人对现炒美食的需求。
这个比喻具体是在说什么呢?
首先,我们要分清楚 Web应用 和 Web服务器 这两个概念。Django开发出来的程序是Web应用,它本身不能起到监听用户请求并响应这种 “收发员” 的功能。监听用户请求并响应是 Web服务器 的职责。
Nginx就是一个 Web服务器 。即使没有web应用运行,只有一大堆 html 静态页面,我们也可以通过配置路由和返回的页面来使用Nginx搞出一个静态网站。
Django开发的Web应用本身是没有和客户端(浏览器)交互的功能的。我们在本地能够运行它是只是因为Django其内置了一个小型Web服务器而已,不过它性能受限,不能用于生产环境。
那么将Nginx和Django组合是不是就大功告吉了呢?没那么简单。Python官方定义了WSGI(Web Server Gateway Interface)作为Web服务器与Python Web应用程序或框架之间的建议标准接口。这样可以提高Web应用程序和服务器之间的可移植性。显然Django需要一个实现WSGI的服务器来和它配合。然而Nginx作为一个普通的>1 缺省servlet可以处理静态资源
2 当请求的资源为静态资源时,缺省servlet会首先检查请求的资源是否存在于web应用程序的根目录或者WEB-INF目录下,如果存在则直接返回该资源;如果不存在,则会将请求转发给下一个servlet或者JSP处理。
3 如果需要更高效的处理静态资源,可以使用专门的静态资源处理器,如Apache >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)