apache是什么?他和Django有什么关系?

apache是什么

一个很笼统的介绍:apache是一个开源的且免费的web服务软件(web server),大约为全球46%的网站提供了服务,官方名字是 Apache HTTP server

上述文字常见于很多介绍中,但是对于初学的我来说并不能看懂。核心是apache是一个web server,那web server又是什么?

web server是什么

互联网上有许多服务软件,web server只是其中最常见的一种,并且覆盖非常广,由于人们日常的使用习惯,导致其他的server看起来没有那么重要,比如邮件服务(mail server)、文件服务(fail server)等等其他server。每一种server的功能都相当于一个中介,将服务器物理存盘上的数据/文件,组织成用户需要的页面并进行返回。邮件服务读取邮件返回,文件服务操作文件,而web服务就是操作网页了。

在这里插入图片描述
web server从服务器中取出的文件可能是用python/java/php等各式各样的语言写成,而要返回给用户的则是一个html网页。

apache web server怎么工作

apache web server会像其他web server一样,处理用户发来的连接。在同一时间可能会有成千上万个连接从不同的客户端发来(比如Firefox chrome 和Safari等等),它需要非常有条理的将这些连接进行响应。同时apache是一个跨平台的软件,既可以为unix系统的服务器提供服务,也可以为Windows系统的服务器提供服务。
比如说,当您正在通过浏览器阅读这篇博客,您的浏览器像csdn的服务器发送了一个请求,csdn服务器的web server(假设是apache的),就会检查这个请求,从服务器中取出相应的文件,组织成html进行返回。客户端和服务器之间用http协议进行沟通,而apache web server 就是要保证两个机器之间能够平稳的沟通。

apache 和其他web server的对比

除了apache之外,还有很多的web server,比如NGINX、tomcat等。

NGINX

Apache使用基于线程的结构,对于流量大的网站而言性能不太能保证。而NGINX能够比较好的应对大流量。其次nginx是事件驱动的,它不会为每个请求创建一个新的进程。相反,它在一个线程中处理每个请求。此主进程管理几个执行请求实际处理的子进程。通过这种方式能够应对大流量的访问。
所以对于大流量的网站,nginx能提供更稳定的性能。

tomcat

tomcat也是apache公司开发的一个web server,他的全称是apache tomcat,他也是一个http的服务程序,不同的是他可以提供Java软件,这样就能提供动态网页而非静态网页。

把这些web server装在个人的电脑上,自己的本机也可以成为一个服务器,运行一个web服务程序,并为其分配端口,则接入同一网络的电脑/手机可以通过IP地址:端口号的方式访问你这台变成了服务器的主机。当然还有一个前提是,本机关掉防火墙,允许别的机器进行访问(存在一定的风险,不过很好玩)。大二小学期时老师曾让我们编写一个简易的web server,最终就变成了应付作业,找了一些现成的例子,现在终于看懂了。。

Django是什么

官网上的介绍这样的:

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.

大致意思就是:Django是一个Python Web框架,能够进行快速开发,使用便捷,解决了许多Web开发的麻烦,因此您可以专注于编写应用程序,而无需重新造轮子。且是免费和开放源码的。

那么问题来了,Web framework和Web server是什么关系?也就是apache和Django有什么联系?

apache和Django的联系

在这里插入图片描述
服务器上运行的是一个个web 程序,简单概括,Django这样的frame就是为这一个个app提供了和web server之间沟通的方式。并且将这些沟通进行了隐藏,在编写自己的网站程序时就只需要考虑程序的运行逻辑,而不需要考虑和web server的沟通。
上文提到了webserver是从服务器上取出文件,组织成一个个html提供给用户,这里详细解释取文件这个过程。比如说,用户发来getxxx的请求到web server上,server通过检查是哪个app提供的功能,进而向该app索取该功能,web app接到了这个getxxx后,组织信息,提交给web server ,server再转交给用户。
这个app的编写可以有多种语言,比如java python php等等。Django是python的web app编写框架,它把这些沟通过程都写好了而不用开发者自己考虑怎么和web server进行沟通。所以开发者可以更专注于自己app功能的开发而不是怎么和web server进行沟通,当然一个能力强的开发者可以自己造轮子进行沟通。。

对于Django而言,在运行一个Django程序时,似乎它自带了一个web server,而这个主要是进行本机调试用的,如果要大规模部署上线还是需要apache setup的。

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要部署一个 PythonDjango 项目,你需要完成以下步骤: 1. 确保你已经安装了 PythonDjango,并且在本地开发环境中能够正常运行你的 Django 项目。 2. 准备一个服务器或者云主机,确保服务器上已经安装了 Python 和一些必要的依赖库,例如数据库驱动程序等。 3. 将你的 Django 项目文件上传至服务器。你可以使用 FTP、SCP 或者其他文件传输工具将项目文件从本地上传到服务器上。 4. 在服务器上创建一个虚拟环境(可选但推荐),用于隔离不同项目之间的依赖关系。 5. 在虚拟环境中安装项目所需的依赖库。可以通过运行 `pip install -r requirements.txt` 命令来安装 `requirements.txt` 文件中列出的依赖库。 6. 配置数据库连接。在项目的配置文件中,确保数据库连接配置正确,包括数据库类型、主机、端口、用户名和密码等。 7. 运行数据库迁移。使用 Django 的命令行工具运行数据库迁移命令,以创建或更新数据库表结构。运行 `python manage.py migrate` 命令。 8. 配置静态文件服务。在生产环境中,通常需要单独配置静态文件的服务,例如设置 Nginx 或者 Apache 服务器来提供静态文件的访问。 9. 配置生产环境的服务器。根据你的部署环境,可能需要进行一些额外的配置,例如设置环境变量、调整服务器配置等。 10. 启动 Django 项目。在服务器上运行 `python manage.py runserver` 命令,启动 Django 项目。 11. 使用域名或者 IP 地址访问你的 Django 项目。在浏览器中输入服务器的域名或者 IP 地址,加上相应的端口号(默认为 8000),即可访问你的 Django 项目。 完成以上步骤后,你的 Django 项目就成功部署到了服务器上,并可以在生产环境中运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值