版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目9:部署“古典文学网”项目XXX202X-XX-XX
目录02.任务1:安装Apache服务器05.任务4:部署前端项目03.任务2:安装mod_wsgi扩展模块04.任务3:部署后端项目01.知识储备:服务器技术06.拓展任务
学习目标知识目标:了解Web服务器技术,并掌握其运作原理及核心机制;了解Apache服务器技术,并掌握其内在原理及使用方法;了解mod_wsgi模块,并掌握其工作原理以及具体的使用方法。能力目标:通过学习Apache服务器,能够构建高效、稳定且安全的Web环境;通过学习Apache服务器,能够部署Flask及Vue项目程序;通过学习项目的部署流程,能够解决部署中遇到的各种问题和挑战素质目标:培养系统思维,严格遵守行业规范和标准,提高软件质量和可靠性;培养责任感、职业精神和团队精神,遵守职业道德。01项目描述
1.1.项目需求小白所在的开发团队已经圆满完成了“古典文学网”项目的开发工作。接下来,小白将承担起为客户部署“古典文学网”项目的重任。02知识储备
2.知识储备为了项目的顺利开发,小白需要掌握服务器技术,同时提升与客户沟通交流的技巧,为“古典文学网”项目的顺利部署做好充分的技术储备。
2.1.Web服务器介绍1Web服务器
Web服务器,亦被广泛称为WWW(万维网)服务器,其核心职责在于互联网环境中提供网页信息的存储、处理与传递服务。作为网站运作的基石,它承担着接收并精准响应来自全球互联网用户请求的重任,从而确保用户能够顺畅地浏览和访问网页内容。图9.1展示了Web服务器物理部署结构。
当前,主流的Web服务器包括Apache、Nginx、IIS,以及广泛采用的Tomcat、Jetty、WebSphere、WebLogic和Kestrel等。在这些中,Apache是全球范围内使用最为广泛的Web服务器,其市场占有率高达约60%。图9.1Web服务器物理部署
2.1.Web服务器介绍2
工作原理当用户通过浏览器键入网址(URL)时,浏览器随即向Web服务器发送一个HTTP请求。一旦Web服务器接收到这一请求,它解析其中的信息,包括请求的资源类型和所采用的方法等。紧接着,服务器会根据这些信息在其文件系统中定位到对应的资源,并将这些资源以HTTP响应的形式回馈给浏览器。浏览器接收到响应后,会进一步解析其中的HTML、CSS和JavaScript等代码,最终将精美的网页内容展示给用户。这一完整的工作流程如图9.2所示。图9.2Web服务器工作流程
2.2.Apache服务器1
Apache服务器简介ApacheHTTPServer(简称Apache)是由Apache软件基金会推出的一款开源网页服务器软件。Apache能够运行在几乎所有主流的计算机平台上,其跨平台性和卓越的安全性特性使其成为业界最受欢迎的Web服务器端软件之一。它支持简单的API扩充,并能将诸如Perl和Python等解释器编译到服务器中,从而为用户提供更为丰富的功能和体验。Apache的logo如图9.3所示。图9.3Apache的logo图标
2.2.Apache服务器2
主要特点Apache是一个模块化的Web服务器软件,源自NCSAhttpd服务器,经过无数次的精心优化与修改,已然成为业界的翘楚。Apache服务器凭借其模块化设计,展现出以下显著的特点。(1)开源Apache是一款开源软件,它以自由、开放的精神,允许任何人免费获取、使用并参与到其开发过程中。这种开放的特性使得Apache成为全球范围内广泛采纳和应用的Web服务器软件。(2)跨平台Apache以其卓越的跨平台能力,能够顺畅地运行在多种操作系统上,包括但不限于Windows、Linux以及Unix等,为用户提供了极大的灵活性和便捷性。(3)可扩展性Apache以其模块化的架构,能够轻松加载各种扩展模块,从而增强其功能性。它支持多种Web编程语言,包括但不限于Perl、PHP、Python和Java,为开发者提供了广泛的选择空间,以满足不同项目的需求。(4)高性能Apache的设计初衷是追求极致的性能和卓越的并发处理能力,以确保服务器在面对海量用户请求时,能够迅速而精准地做出响应,为用户带来流畅、稳定且无与伦比的网络体验。(5)安全性Apache通过提供一系列强大的安全功能,如SSL/TLS加密支持、精细的访问控制机制以及用户认证等,全面保障了服务器和用户数据的安全。这些安全措施旨在为用户提供一个值得信赖的在线环境,确保他们的隐私和数据安全无虞。
2.3.mod_wsgi模块1
mod_wsgi模块简介mod_wsgi模块是ApacheHTTP服务器的一个关键扩展,它实现了Python的WSGI(WebServerGatewayInterface)标准,为Python应用程序与Apache服务器之间的顺畅交互提供了桥梁。这一模块的工作机制如图9.4所示。图9.4mod_wsgi模块的工作机制mod_wsgi模块是部署PythonWeb应用程序(如Django、Flask等)到Apache服务器上的理想选择,它确保了Web服务的高性能、稳定性和安全性。
2.3.mod_wsgi模块2
执行模式在部署PythonWeb应用程序过程中,mod_wsgi模块提供了两种执行模式。(1)Embedded模式Embedded模式下,PythonWSGI应用可以在Apache的子进程中执行,从而与Apache服务器上的其他应用共享进程空间。这种执行模式能够实现高效的性能,因为多个应用共享相同的进程资源。然而,为了确保系统的稳定性和性能优化,可能需要针对Apache的MPM(Multi-ProcessingModule)进行适当的配置和调整。(2)Daemon模式Daemon模式下,Apache通过启动专用的进程来执行PythonWSGI应用,但这一过程中,PythonWSGI应用需要配备相应的进程监控或WSGI适配器。这种执行模式在安全性上更具优势,因为它将Python应用与Apache服务器的主进程完全隔离开来,从而减少了潜在的安全风险。这种隔离机制确保了应用的稳定运行,并提供了更高的安全性保障。03项目任务
3.
项目任务开发团队已经完成了“古典文学网”项目的开发。小白需要将该项目部署至客户服务器,以便让用户能够顺畅使用需求描述:
3.1
安装Apache服务器任务步骤:1.下载Apache安装包2.安装Apache服务器
3.1
安装Apache服务器1.下载Apache安装包在下载Apache安装包之前,我们务必进行一项关键验证,即确认所下载的安装包是否与当前Python环境相兼容。首先,我们启动Windows的命令行窗口,随后在命令行中输入“python”命令,并按下回车键。执行此操作后,系统将显示当前安装的Python版本信息,如图9.5所示。图9.5Python版本信息图9.6_MSC_VER值与VisualStudio版本部分常见的对应关系
3.1
安装Apache服务器1.下载Apache安装包经过上述步骤的仔细分析,我们可以确定需要下载的Apache安装包应为64位版本,并且与vc17(即MicrosoftVisualC++17.0)兼容。接下来,我们将通过浏览器访问Apache的官方网站,在该网站上选择与我们环境相匹配的Apache安装包进行下载,如图9.7所示。图9.7Apache2.4安装包下载界面及安装包
3.1
安装Apache服务器2.安装Apache服务器首先,请将上一节下载的Apache安装包“httpd-2.4.59-240404-win64-VS17.zip”进行解压缩操作。随后,将解压出的Apache24文件夹复制到D盘的根目录下(D:\Apache24),或者我们也可以选择将其放置在其他目录下(目录不能包含中文或特殊字符)。
3.1
安装Apache服务器2.安装Apache服务器接下来,为了配置Apache服务器,我们需要打开位于D:\Apache24\conf\httpd.conf的配置文件。在这个文件中,我们将设置服务器的根目录和访问端口。具体地,我们将把第37行中默认的服务器根目录路径修改为“D:\Apache24”,并将第60行中默认的80端口更改为8088,以确保我们使用自定义的端口号。以下是相关的配置代码示例:.....DefineSRVROOT"D:/Apache24"Listen8088......紧接着,为了创建Apache服务,我们需要以管理员权限启动Windows的命令行窗口。然后,通过命令进入D:\Apache24\bin目录,并输入以下命令来创建服务:httpd.exe-kinstall-n"apache2.4"
3.1
安装Apache服务器2.安装Apache服务器安装完成后,我们可以通过在Windows的命令行窗口中输入“httpd-kstart”命令来启动Apache服务。我们也可以进入D:\Apache24\bin目录,并双击ApacheMonitor.exe程序来打开ApacheServiceMonitor服务管理界面。在这个界面中,我们能够看到Apache服务的当前状态,并且可以在界面右侧按钮控制Apache服务的启动、停止或重启等操作。ApacheServiceMonitor服务管理界面如图9.8所示。图9.8ApacheServiceMonitor服务管理界面
3.1
安装Apache服务器2.安装Apache服务器最后,当Apache服务被启动后,可在浏览器地址栏中输入http://localhost:8088进行访问。如果页面显示“Itworks!”字样,意味着Apache已成功安装并在本地正确运行。访问结果如图9.9所示。图9.9Apache服务器欢迎界面
3.2.安装mod_wsgi扩展模块安装mod_wsgi扩展模块前,请确认安装了Python、Apache以及与之匹配的VisualStudio库的工具集。需求描述:
3.2.安装mod_wsgi扩展模块任务步骤:1.安装VisualStudio的工具集2.安装mod_wsgi扩展模块
3.2.安装mod_wsgi扩展模块1.安装VisualStudio的工具集
在安装mod_wsgi扩展模块之前,我们确保已安装VisualStudio库的工具集。从前面的对部署环境的分析,我们得知需要安装VisualStudio2022版本17.7,或者选择更为轻量级的MicrosoftC++生成工具进行安装。为了确保VisualStudio库工具集的完整性,我们强烈推荐我们使用MicrosoftC++生成工具,因为它通过可编写脚本的独立安装程序提供了MSVC工具集,从而确保我们不会遗漏任何必要的组件。
首先,我们需要通过浏览器导航至微软官方网站,并访问MicrosoftC++生成工具的下载页面。在该页面,我们可以找到并下载所需的生成工具。具体的操作界面可能如图9.10所示。图9.10MicrosoftC++生成工具下载界面及安装包
3.2.安装mod_wsgi扩展模块1.安装VisualStudio的工具集接下来,我们需要运行vs_BuildTools.exe程序。在程序界面中,请确保选中“使用C++的桌面开发”选项,这将确保我们安装了VisualStudio中用于C++开发的必要工具集。具体的选择过程可以参考图9.11所示的操作界面。图9.11MicrosoftC++工具安装界面
3.2.安装mod_wsgi扩展模块1.安装VisualStudio的工具集在上图中,我们可以按照默认选项进行安装,当然,也可以根据我们的Windows系统版本选择相应的工具进行个性化安装。一旦安装完成,为了确保所有更改生效,建议我们重启计算机。图9.12展示了安装完成后的界面。图9.12VisualStudio生成工具安装成功界面
3.2.安装mod_wsgi扩展模块2.安装mod_wsgi扩展模块
在上一节的基础上,我们使用pipinstall命令来将mod_wsgi扩展模块安装到我们的Python环境中。请参考以下步骤进行安装。首先,我们打开Windows的命令行窗口,输入以下安装命令,并按回车键,安装mod_wsgi扩展模块。set"MOD_WSGI_APACHE_ROOTDIR=D:\Apache24"pipinstallmod_wsgi
上述命令中,set"MOD_WSGI_APACHE_ROOTDIR=D:\Apache24"命令用于设置Apache服务器的安装目录,而pipinstallmod_wsgi命令用于安装mod_wsgi扩展模块。
3.2.安装mod_wsgi扩展模块2.安装mod_wsgi扩展模块
接下来,我们需要获取mod_wsgi扩展模块的信息,我们启动Windows的命令行窗口,随后在命令行中输入以下命令,并按回车键。mod_wsgi-expressmodule-config
执行上述命令后,我们将能够查看到mod_wsgi扩展模块的配置信息,标志着mod_wsgi的安装过程已顺利完成。具体的配置如图9.13。图9.13mod_wsgi扩展模块的配置信息
3.2.安装mod_wsgi扩展模块2.安装mod_wsgi扩展模块最后,我们需要对Apache服务器进行配置,以便集成mod_wsgi扩展模块。请打开位于D:\Apache24\conf\目录下的httpd.conf配置文件,并将上图中展示的三行代码复制到该配置文件中。mod_wsgi模块配置信息如图9.14所示。图9.14Apache中mod_wsgi的配置信息
3.3.部署后端项目接下来,我们将“古典文学网”后端项目部署至Apache服务器,以确保客户端能够顺畅地访问所需的API接口需求描述:
3.3.部署后端项目任务步骤:1.部署生产环境2.配置Apaceh的虚拟主机3.测试后端API接口
3.3.部署后端项目1部署生产环境
为了确保与开发环境的有效隔离,我们需要构建一个专门用于项目部署的生产环境,以便在其中存放并运行我们准备部署的项目。这样做可以确保生产环境的稳定性和可靠性,同时避免与开发环境之间的潜在冲突。
3.3.部署后端项目1部署生产环境
首先,我们需要在计算机的D盘上创建一个名为cls_deploy的目录,作为我们的生产环境。紧接着,将后端项目cls_svr完整地复制到该目录中,并分别创建run.py和run.wsgi两个文件。其中,run.py将作为程序的启动入口,而run.wsgi则作为WSGI(WebServerGatewayInterface)应用程序的脚本文件,用于定义和配置Web服务器与PythonWeb应用程序之间的交互。完整的项目结构如图9.15所示。图9.15生产环境中cls_svr项目结构目录
3.3.部署后端项目1部署生产环境
在cls_svr项目中,我们找到run.py文件,并在其中编写以下代码。这段代码与原始项目中的app.py文件在功能上基本一致,但为了适应生产环境部署,我们移除了启动时的端口定义。具体的代码实现参考如下:#引入应用工厂函数fromappimportcreate_appfromapp.api.user_blueprintimportuser_blueprintfromapp.api.classics_blueprintimportclassics_blueprintfromapp.api.image_blueprintimportimage_blueprint#调用工厂,创建appapp=create_app()#注册蓝图app.register_blueprint(user_blueprint,url_prefix="/api/user")
app.register_blueprint(classics_blueprint,url_prefix="/api/classics")app.register_blueprint(image_blueprint,url_prefix="/api/image")
#启动Flask程序if__name__=="__main__":
#启动服务
app.run(host="",debug=False)
3.3.部署后端项目1部署生产环境
在cls_svr项目中,我们找到WSGI脚本文件run.wsgi。这个文件的主要功能是通过mod_wsgi模块将Flask项目与Apache服务器连接起来,确保两者能够协同工作。以下是该文件的具体代码:importsyssys.path.insert(0,"D:\cls_deploy\cls_svr")#添加项目路径到python解释器的搜索路径中fromrunimportappasapplication#这里必须是application
3.3.部署后端项目2配置Apaceh的虚拟主机
Apache的虚拟主机配置功能赋予了我们在一台服务器上托管多个网站的强大能力,每个网站都能享受到独立且定制化的配置。接下来,我们将详细介绍如何配置Apache的虚拟主机,以部署“古典文学网”的后端项目。在本次配置中,我们将采用基于IP地址和端口的配置方式。以下是具体的配置步骤:
3.3.部署后端项目2配置Apaceh的虚拟主机
首先,为了启用虚拟主机的配置,我们需要在Apache的主配置文件httpd.conf中进行相应的修改。在httpd.conf文件中,请查找到#Includeconf/extra/httpd-vhosts.conf这样的行。一旦找到,我们需要删除该行前面的注释符号#,从而启用虚拟主机配置文件httpd-vhosts.conf。
3.3.部署后端项目2配置Apaceh的虚拟主机
接下来,我们需要配置虚拟主机来部署后端项目。请打开位于conf/extra/httpd-vhosts.conf虚拟主机配置文件。在该文件中,我们添加一个监听8085端口的虚拟主机条目,以便为后端项目提供独立的服务。以下是具体的配置代码示例:.....#古典文学网后端项目部署Listen8085<VirtualHost*:8085>
ServerNamelocalhost:8085
ServerAliaslocalhost:8085
WSGIScriptAlias/D:/cls_deploy/cls_svr/run.wsgi
<Directory"D:/cls_deploy/cls_svr">
WSGIApplicationGroup%{GLOBAL}
AllowOverrideNone
Requireallgranted
</Directory>
</VirtualHost>
3.3.部署后端项目2配置Apaceh的虚拟主机最后,为了解决在Apache环境下无法从HTTP头部获取Authorization参数的问题,我们对Apache的配置文件进行调整。请打开位于D:\Apache24\conf\httpd.conf的配置文件,并在其中找到<IfModuledir_module>这一配置节点。在该节点下,我们需要添加“SetEnvIfAuthorization.+HTTP_AUTHORIZATION=$0”配置信息。如图9.16所示。图9.16Apache中Authorization的配置信息
3.3.部署后端项目3测试后端API接口
经过上述一系列的配置步骤,我们已经成功地将“古典文学网”的后端项目部署完毕。接下来,请定位到Apache的安装目录,并在该目录下的bin文件夹中双击ApacheMonitor.exe文件,以打开ApacheServiceMonitor工具。在工具界面中,单击相应的按钮启动Apache服务。具体界面布局和操作可以参考图9.17所示。图9.17ApacheServiceMonitor服务管理界面
3.3.部署后端项目3测试后端API接口
一旦Apache服务成功启动,我们可以通过访问“http://localhost:8085/api/classics/get-classictypes”来调用文学导航API接口,从而验证“古典文学网”后端项目是否已经成功部署。测试结果如图9.18所示。图9.18“古典文学网”后端项目测试结果
3.4.部署前端项目接下来,我们将“古典文学网”前端项目部署到Apache服务器,确保用户能够顺畅地访问并体验“古典文学网”的各项功能。需求描述:
3.4.部署前端项目任务步骤:1.打包部署2.配置Apaceh的虚拟主机3.测试前端项目
3.4.部署前端项目1.打包部署
为了确保与开发环境的有效隔离,我们需要构建一个专门用于项目部署的生产环境,以便在其中存放并运行我们准备部署的项目。这样做可以确保生产环境的稳定性和可靠性,同时避免与开发环境之间的潜在冲突。首先,请定位到在D盘下的cls_deploy生产环境目录,它在前一节中已经被创建。接下来,在该目录下新建一个名为cls_clt的文件夹,作为“古典文学网”前端项目的生产环境目录(即路径为D:/cls_deploy/cls_clt)。
3.4.部署前端项目1.打包部署接下来,我们将对前端项目进行构建和打包。首先,利用VSCode开发工具打开前端项目cls_clt。随后,在VSCode的Terminal终端窗口中,键入“cnpmrunbuild”命令来启动构建流程。执行此命令后,项目会自动进行编译和打包,最终在项目目录中生成一个名为dist的文件夹。该文件夹中包含了所有经过优化和压缩的打包文件,它们可以部署至生产环境中。图9.19(a)和图9.19(b)详细展示了构建和打包后的文件结构以及内容概览。图9.19(a)项目构建结果图9.19(b)项目dist文件夹中的打包文件
3.4.部署前端项目1.打包部署最后,我们将执行一个重要的步骤,即将dist文件夹中所有编译和打包完成的文件复制到前端项目的生产环境目录(即D:/cls_deploy/cls_clt),以确保用户能够访问到最新的前端资源。
3.4.部署前端项目2.配置Apaceh的虚拟主机经过前一节的操作,我们已经对“古典文学网”的前端项目进行了打包,并将这些打包文件复制到了生产环境目录。接下来,为了确保前端项目能够正确运行,我们需要为其配置相应的虚拟主机。请按照以下步骤进行配置。首先,为了解决前端项目可能遇到的跨域问题,我们需要为Apache服务器配置反向代理。这要求Apache服务器加载与代理相关的模块,否则代理配置将无法生效。请打开位于D:\Apache24\conf\httpd.conf的配置文件,查找以下2行配置信息,并去掉这两行代码前面的#符号。LoadModule
proxy_module
modules/mod_proxy.soLoadModule
proxy_http_module
modules/mod_proxy_http.so
3.4.部署前端项目2.配置Apaceh的虚拟主机接下来,我们需要配置虚拟主机来部署前端项目。请打开位于conf/extra/httpd-vhos
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025盛岳·安徽省岳顺人力资源服务有限公司招聘23人笔试参考题库附带答案详解
- 2025湖南衡阳智能衡器计量产业园发展有限公司招聘7人笔试参考题库附带答案详解
- 2025湖北恩施州建昇电力科技有限公司招聘5人笔试参考题库附带答案详解
- 2025浙江省盐业集团有限公司招聘22人笔试参考题库附带答案详解
- 2025河北唐山市人才派遣有限责任公司招聘工作人员1人笔试参考题库附带答案详解
- AI助力职场销售人员跟进记录管理
- 黑龙江省2025黑龙江哈尔滨“丁香人才周”应急管理专项招聘(依兰县)事业单位引才招笔试历年参考题库典型考点附带答案详解
- 重庆市2025二季度重庆市属事业单位招聘1134人笔试历年参考题库典型考点附带答案详解
- 绥化市2025黑龙江绥化望奎县事业单位招聘工作人员48人笔试历年参考题库典型考点附带答案详解
- 深圳市2025广东深圳市市直机关车辆服务中心招聘员额制人员11人笔试历年参考题库典型考点附带答案详解
- 某自来水厂施工组织设计完整方案
- 十年(14-23)高考物理真题分项汇编专题58 气体的等圧変化(含解析)
- 危险化学品-危险化学品的运输安全
- 2023建筑结构弹塑性分析技术规程
- 110kv变电站设计外文翻译
- 2023年中考数学压轴题专题22 二次函数与新定义综合问题【含答案】
- 毛主席诗词(132首)
- SB-2100流量积算仪说明书
- 会计师事务所清产核资基础表模版
- 【毕业论文撰写】开题报告、文献综述、文献检索
- GB/T 41-20161型六角螺母C级
评论
0/150
提交评论