生产环境构建指南:Web应用——概述

Flask 应用的生产环境部署指南 Flask 是一个轻量级的 Python Web 应用框架,常用于快速开发 Web 应用或 API。然而,Flask 内置的开发服务器仅适用于开发和调试阶段,并不适合直接用于生产环境。本文将详细介绍在生产环境中部署 Flask 应用的最佳实践,包括使用专业的 WSGI 服务器和反向代理服务器,以及性能优化和安全配置。 阅读详情

提供:ZStack云计算

系列教程

本教程为生产环境构建指南:Web应用系列六篇中的第一篇。

内容介绍

在本系列六篇教程中,我们将探讨如何从零开始构建一套多服务器生产应用设置。作为最终效果,其将支持备份、监控以及集中化日志处理系统,帮助大家确保了解其中可能存在的问题并实现恢复。

如果大家对本文中提及的各概念抱有兴趣,也可参阅以下教程:

以上教程提供了生产应用设置中的部分基本准则,而本系列文章则演示如何规划并设置一套示例应用。希望本教程能帮助大家规划并实现自己的生产服务器环境。由于本教程涵盖多种不同系统管理议题,因此我们会在各篇文章中有针对性地进行详细说明。

我们的目标

到本教程结束时,我们将拥有一套面向PHP应用的生产服务器设置,本示例将选择WordPress,且可通过https://www.example.com/访问。我们还将引入生产应用服务器。最终设置成果如下所示(图片中未显示专有DNS与远程备份):

在本设置中,Application框中的服务器负责承载所运行的应用。另外其还包含恢复规划与远程备份服务器,并利用组件备份、监控与日志记录机制以支持生产性应用设置。各组件都将安装在同一DigitalOcean服务区内的一套独立Ubuntu 14.04服务器之上,在本示例中使用NYC3,同时启用Private Netwroking。

构成应用的各服务器分别使用以下主机名称:

  • lb1: HAProxy负载均衡,通过https://example.com/进行访问
  • app1: Apache与PHP应用服务器
  • app2: Apache与PHP应用服务器
  • db1: MySQL数据库服务器

需要强调的是,本教程的主要作用在于展示如何在多套服务器上构建应用,并根据需求进行定制。此特定服务器设置中存在单点故障,我们可以引入其它负载均衡器(以及round-robin DNS)与数据库服务器副本,或者添加指向主动或被动负载均衡器的静态IP消除这一问题。

支持应用服务器的各组件将采用以下主机名称:

  • backups: Bacula备份服务器
  • monitoring: Nagios监控服务器
  • logging: Elasticsearch、Logstash与Kibana(简称ELK)堆栈以实现集中日志处理

另外,还有以下三种未体现在示意图中的支持组件:

  • ns1: 面向专有DNS的主BIND域名服务器
  • ns2: 面向专有DNS的二级BIND域名服务器
  • remotebackups: 远程服务器,位于不同服务区,用于存储Bacula备份副本以实现生产数据中心内的物理灾难恢复机制

我们还针对多种应用组件开发出基础恢复规划。

在完成设置后,我们将拥有10套服务器。这里我们会一次性创建全部服务器,但大家也可以根据需要随意创建。

高可用性(可选)

单点故障意味着基础设施中的单一组成部分故障会导致整体网站或者服务不再可用。如果大家要解决这一问题,可以添加其它负载均衡机制以实现高可用性。高可用性服务能够在发生故障时自动切换至备份或被动系统。

要了解更多与高可用性设置相关的内容,请参阅如何利用Floating IP一文。

虚拟专有网络(可选)

如果大家希望保护各服务器间的网络通信内容,则需要设置一套VPN。利用加密机制保护网络流量非常重要,特别是在利用互联网进行数据传输的情况之下。另外,使用VPN还能够帮助我们使用密钥认证机制,保证业务免受未授权来源的访问。

如果大家希望选择一套开源VPN解决方案,则可以考虑Tinc或者OpenVPN。在本示例中,我们将使用Tinc。这两套VPN方案的教程可参阅以下内容:

先决条件

每套Ubuntu 14.04服务器应当拥有一个非root超级用户,设置方式可参阅Ubuntu 14.04初始服务器设置。所有命令在各服务器上皆由此用户进行操作。

我们还假定大家了解Linux安全概念,因此文中不再对其进行详细探讨。如果大家对此并不熟悉,请参阅七种安全举措保护服务器。

域名

我们假定大家的应用可通过域名进行交付,例如example.com。如果大家还不具备域名,则可从域名注册商处进行购买。

在选定了域名后,大家可以参阅如何将域名注册商指向DigitalOcean域名服务器使用DigitalOcean DNS。

除了简化站点访问方式之外,域名还能够帮助我们使用SSL证书完成身份验证,同时对应用与用户间的通信进行加密。

SSL证书

TLS/SSL为应用与用户间提供加密与域名验证机制,因此我们将在设置中使用SSL证书。在本示例中,由于我们希望用户通过www.example.com访问站点,因此我们将指定该证书的常用名称(简称CN)。该证书将被安装在HAProxy服务器lb1上,从而便于生成证书密钥与CSR。

如果大家需要利用证书提供身份验证功能,则需要购买一份SSL证书。具体方式可参阅如何从商用认证中心处获取并安装SSL证书一文。

如果大家不想付费购买证书,也可以考虑使用StartSSL的免费证书:

另外,大家也可以使用以下命令生成自签名SSL证书:

  • sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/www.example.com.key -out ~/www.example.com.crt

一步步达成目标

现在我们已经拥有了生产应用设置的总体轮廓,接下来为其设计出构建规划。

构成应用的各组件无疑最为重要,因此我们需要保证其优先上线运行。不过由于我们打算利用基于名称的专有网络连接地址解析机制,所以DNS必须首先准备就绪。

DNS完成后,为了让各组件开始运行,我们还需要设置支撑应用的服务器。应用需要配合数据库与负载均衡机制方可起效,因此我们将采取以下设置顺序:

  1. 数据库服务器
  2. 应用服务器
  3. 负载均衡服务器

此后,我们还要制定一套面向各类场景的恢复规划。另外,我们要利用监控方案确保自己的服务器与服务处于正常状态。最后,我们以集中化日志记录方式实现日志查看、故障排查以及趋势识别。

总结

在总体规划就绪之后,我们的生产应用设置即可开始进行。请记住,在这套设置中,我们的主要目标在于收集有用信息、汇总实现经验以改进未来的各类应用实现效果。

概述部分就到这里结束,感兴趣的朋友请继续关注本教程的下一部分,生产环境构建指南:Web应用——部署。

本文来源自DigitalOcean Community。英文原文:Building for Production: Web Applications — Overview By Mitchell Anicas

翻译:diradw

Tomcat学习总结(17)—— Tomcat生产环境中域名访问和连接MySQL 搭建基于域名的虚拟主机进入Tomcat里面去修改配置文件,配置虚拟主机用域名访问,[root@juny-18 tomcat]# cd conf/[root@juny-18 conf]# lsCatalina catalina.properties jaspic-providers.xml logging.properties tomcat-users.xml web.xmlcatalina.pol 阅读详情

相关推荐

云计算平台应用实践——云计算与云平台

本文系统剖析云服务平台主流架构,梳理清楚云计算与云平台的关系,详解IaaS、PaaS、SaaS三大服务模式及其技术核心。重点分析公有云、私有云与混合云三种部署架构,并对比AWS、Azure、GCP等国际巨头及阿里云、华为云、腾讯云等国内主力平台的定位、优势与适用场景,为云平台选型提供全面参考。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 139

生产环境构建指南:Web应用——部署

提供:ZStack云计算 系列教程本教程为生产环境构建指南:Web应用系列六篇中的第二篇。内容简介在今天的教程中,我们将探讨如何部署示例PHP应用、WordPress以及专有DNS:用户可通过域名经由HTTPS访问我们的应用,而此域名则指向负载均衡器。负载均衡器将充当应用服务器的反向代理,而应用服务器则接入数据库服务器。经过简单的服务器配置,专有DNS将允许我们使用名称指向服务器的专有网络地址。以上

zstack_org的博客 2065

上网第二课:办了百兆宽带,为什么测速只有一半?

最慢的那一环。

qq_36765170的博客 111

快速搭建Java生产环境

快速搭建一个java的生产环境 (本文使用于有一定基础的编程人员,如果小白的话请仔细,一步一步按照本文来 也可配置成功,有问题可在下方评论) 1.JDK 看好自己电脑的版本 X32/X64,然后下载一个版本。并不是越新越好,一般都是1.5、1.7 官网 http://www.oracle.com/technetwork/java/index.html,官网有时候会卡 我在自己

幻凡ss 2966

家用电器维修必备:手把手教你用双向可控硅改造单相电机调速(附电路图)

本文提供了一份详细的家用电器维修指南,手把手教你如何利用双向可控硅为核心元件,为单相交流电机(如风扇、排气扇)实现平滑的无级调速改造。内容涵盖核心原理、安全须知、元件选型(如BT136、DB3)、电路图解析、分步搭建教程以及常见故障排查方法,旨在帮助维修爱好者和DIY用户安全、成功地完成这一实用且富有成就感的项目。

read5的博客 838

HBuilderx 坑 之前没问题 改了几行代码 小程序上传报分包大小超过限制

Error: 分包大小超过限制,main package source size 4199KB exceed max limit 2MB [20221213 10:08:06][wx432abdb518bdc1eb]下面的我提示是都没超过2M,却提示我超过限制,代码改了不到20行吧,之前是正常上传的.....,比如这类,要压缩的,前提是没压缩过的,但是我肯定提交的时候是压缩的,没勾选此项的要注意,如果本文解决了你的困扰 来波666不为过吧!

爱就码上行动,奔赴热爱,追光而行。愿你带着从容与热爱,拥抱每一天的惊喜与美好 5220

一个合理的生产环境的 Web 应用程序应该是什么样子的

好的工具的产生使开发与部署变得十分容易,作为一个曾经的云服务从业人员,鼓励大家拥抱云服务。拥抱这些现成的技术栈。 这是我在 stephenmann.io 上看到的一篇文章,对于 Web 应用程序架构演进的过程讲解的十分通俗易懂,所以就把它翻译了出来。 原载:stephenmann.io 译者:展小白 一个产品的规划可能会是迎合最普遍的需求,但是很多情况客户希望解决具体的问题,这些问题可能将程序变得...

weixin_34380296的博客 208

避坑指南:PCIe设备兼容性那些坑——聊聊MPS/MRRS设置不当引发的血泪史

本文深入探讨了PCIe设备兼容性问题,特别是MPS/MRRS参数设置不当引发的常见故障。通过详细解析MPS(Max Payload Size)和MRRS(Max Read Request Size)的作用机制,提供Linux内核五大配置策略的对比分析,并分享FPGA加速卡等实战案例的排查经验。文章还介绍了诊断工具链、动态调试技巧以及性能优化方法,帮助工程师有效解决PCIe兼容性难题。

weixin_30872499的博客 419

webpack生产环境构建

开发环境(development)和生产环境(production)的构建目标差异很大。 在开发环境中,我们需要具有强大的、具有实时重新加载(live reloading)或热模块替换(hot module replacement)能力的 source map 和 localhost server。 而在生产环境中,我们的目标则转向于关注更小的 bundle,更轻量的 source map,以及更优化的资源,以改善加载时间。由于要遵循逻辑分离,我们通常建议为每个环境编写彼此独立的 webpack 配置。 虽

zk86547462的博客 388

【干货】SAP物料分类账的简单理解

一、SAP物料分类账理解 物料分类账,简称ML(material ledger),其基本用途是可以用八个字概括“还原成本”、“还原库存”。即通过月底运行物料分类账,将库存差异(原材料-材料成本差异、库存商品-自制半成本差异、库存商品-自制产成品差异)自动按当期库存出库数和库存结存数的比例分摊至成本和库存中。为了理解其概念,可以简单举一个例子: 开一工单,生产A产品,数量为3个,当月全部生产完工

ERP运维咨询(目标和成功) 1万+

SAP ABAP 四种传统的数据库视图类型介绍之二:Projection View

一是该 projection view 只暴露了底层 TADIR 表的四个字段,因此通过该 view 维护数据,在维护界面我们只能维护一条记录的四个字段,如下图所示。使用 Projection view 的优点在于其设计灵活性:如果系统中原始的数据库表字段较多,通过投影仅保留关键信息可有效降低从数据库层到应用层之间的数据传输负担,且保持数据的一致性。其二是笔者之前的文章提到,TADIR 是 ABAP 系统重要的对象注册表,如同 window 操作系统的注册表一样,一般的应用开发人员不应该去修改其内容。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1441

2-网络编程学习环境搭建

工欲善其事,必先利其器,学习网络编程,不动手也是不行的。这里先介绍一下我使用到的相关工具软件。 1. 相关的软件 操作系统 Linux: ubuntu 14.4 + VM 虚拟机 Window: win7 ubuntu 和 vm 这些相信你都会安装,资源也相当好找。windows 系统随便你了,最好安装上一个 Visual Studio,如果你用其它比如 VC 6.0 这样的老古

进击的小学生 4617

Unity3D实现项目限制功能(使用次数限制和时间限制)

大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。在软件开发的时候,可能会遇到程序的使用次数限制,以及时间的限制,下面就写一下这两种方法是新建注册表,增加键值对,修改键值,完成对程序的控制提示:以下是本篇文章正文内容,下面案例可供参考以上就是讲了两种限制方法不定时更新Unity开发技巧,觉得有用记得一键三连哦。

心疼你的一切博客 1812

5.1 构建 Web 应用:将应用部署到生产环境

通过以上步骤,我们成功地将一个 Docker 化的 Flask Web 应用部署到了生产环境。我们讨论了如何选择合适的部署平台、构建生产镜像、配置 HTTPS、管理日志和监控应用性能。此外,我们还介绍了如何使用 CI/CD 工具实现自动化部署,确保应用能够快速、可靠地更新。构建生产镜像:使用构建专门的生产镜像,确保应用在生产环境中高效运行。推送镜像到容器仓库:将生产镜像推送到 Docker Hub 或其他容器仓库,方便在生产环境中拉取。配置生产环境。

xiaoheshang_123的博客 1330

高质量文献综述原来这么写!借助Gemini 3 Pro+四步法,手把手教你写出有逻辑深度的综述

总结与展望先总结现状,说明前人已经做到什么地步了,再指出缺口,前人没解决什么问题、方法有什么局限等等,最后再在这个缺口的基础上,提出你的未来研究方向。当你有个复杂的研究题目,但没办法拆解出关键词,就可以让Gemini 3 Pro来辅助帮你拆解,并帮你写专业的检索式,若是找英文文献,还能帮你将中文关键词翻译成地道的专业术语。做文献笔记,可以建立文献笔记矩阵,可以用Excel建个表格,横向是文献,纵向是关键要素,包括作者/年份、研究问题/假设、理论框架/模型、研究方法/数据来源、核心结论、局限性/Gap。

智能AI让学术科研更容易 993

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

5.1 构建 Web 应用(3):将应用部署到生产环境

通过以上步骤,我们成功地将一个 Docker 化的 Flask Web 应用部署到了生产环境。我们讨论了如何选择合适的部署平台、构建生产镜像、配置 HTTPS、管理日志和监控应用性能。此外,我们还介绍了如何使用 CI/CD 工具实现自动化部署,确保应用能够快速、可靠地更新。构建生产镜像:使用构建专门的生产镜像,确保应用在生产环境中高效运行。推送镜像到容器仓库:将生产镜像推送到 Docker Hub 或其他容器仓库,方便在生产环境中拉取。配置生产环境。

xiaoheshang_123的博客 934

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

7步完美部署React Native Web应用:从开发到生产环境的完整指南

React Native Web作为一款强大的跨平台React UI框架,让开发者能够使用React Native语法构建高性能的Web应用。本指南将带你通过7个关键步骤,从环境配置到生产部署,轻松完成React Native Web应用的部署流程,即使是新手也能快速上手。 ## 📋 准备工作:环境搭建与依赖安装 在开始部署前,确保你的开发环境已满足基本要求。首先需要安装Node.js和np

gitblog_00280的博客 866

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

适用于Web应用的五套通用型服务器设置方案

提供:ZStack云计算 内容简介在决定使用哪种服务器架构构建业务环境时,我们总会面对诸多考量因素,例如性能、可扩展性、可用性、可靠性、成本以及管理易行性等。在今天的教程中,我们将共同了解五套通用型服务器设置方案的各自优势与缺点,帮助大家立足于不同需求做出最为明智的选择。1. 全部立足于单一服务器将整套环境运行在单一服务器上。对于常见的Web应用,其中往往包含Web服务器、应用服务器与数据库服务器。

zstack_org的博客 5212

开发和生产环境的构建配置差异

开发和生产环境的构建配置差异 我们在日常的前端开发工作中,一般都会有两套构建环境: 一套开发时使用,构建结果用于本地开发调试,不进行代码压缩,打印debug 信息,包含sourcemap 文件; 另外一套构建后的结果是直接应用于线上的,即代码都是压缩后,运行时不打印debug信息,静态文件不包括sourcemap 的。有的时候可能还需要多一套测试环境,在运行时 直接进行请求mock 等工作。 we...

Sunny的博客 1180

web环境搭建(centos7版)

web环境搭建(centos7版) 本文主要安装项目上常见工具安装(jdk tomcat redis mysql nginx) 1 创建安装目录 mkdir /u01 2 创建软件放置的位置 cd u01 3 Mkdir software 4.上传软件包 root目录下面不能上传(设置了权限) 只能上传到home/user1 只能切换到 cd home/user1 ,然后移动到u01/...

luzhuhong1的博客 4588

webpack——生产环境构建(十)

1.配置 开发环境(development)和生产环境(production)的构建目标差异很大。在开发环境中,我们需要具有强大的、具有实时重新加载(live reloading)或热模块替换(hot module replacement)能力的 source map 和 localhost server。而在生产环境中,我们的目标则转向于关注更小的 bundle,更轻量的 source map,以及更优化的资源,以改善加载时间。由于要遵循逻辑分离,我们通常建议为每个环境编写彼此独立的 webpack 配置

qq_20464593的博客 269

啥是云计算?

1、云计算 (1)云计算是一种无处不在、便捷且按需对一个共享的可配置计算资源(包括网络、服务器、存储、应 用和服务等)进行网络访问的模式,它能够通过最少量的管理以及与服务提供商的互动实现计算资源的 迅速供给和释放。 (2)云计算基本特征 ①、按需服务:按需服务,自动分配资料 ②、泛在接入:随时随用,可接多种设备 ③、计费服务:根据使用量,计费 ④、弹性服务:资源弹性,规模弹性,自适动态变化。 ⑤、资源池化:资源共享统一管理,分配用户使用。 (3)云计算产生背景: 云计算这个概念首次在 2006 年 8 月的

大今野 158

云计算课程小组PPT汇报任务书

36人分为6组,每组6人;形式:生活案例调研 + 理论解读;汇报时长7‑9min;PPT建议10‑14页。

Michelle8023的博客 207

从技能大赛赛项标准反推:云计算实训室配置清单(2027版)

行业里主流的云计算教学实训平台,通常基于微服务架构(如 spring cloud)、支持 K8s 多种部署模式(公有云/混合云/私有云),底层用 MySQL、MongoDB 这类集群,对外提供统一身份认证与按需资源调度——选平台时,这条技术线要先看明白。赛项标准恰好能治这个病:它是中立的能力锚点,不绑定任何厂商,却把私有云、容器云、公有云、云安全、运维监控这几块能力边界划得很清楚。很多院校建云计算实训室,习惯走"先看预算—选厂商—堆服务器"这条路,结果设备到位了,才发现课程对不上、环境跑不起来。

whwzzc的博客 522

在职学云计算 HCIE 排时间指南:周投入测算与实验优先原则

在职备考HCIE-CloudComputing3.5,核心在于合理分配弹性时间与固定课时资源。正课15天90课时+赠送5天30课时,25组实验占大头,尤其部署扩容与Kubernetes为超线性投入。建议每周投入10-15小时:晚间直播/回放6-7.5小时,周末整块时间专注实验(≥6小时),碎片时间仅用于笔记与复盘。实验不可中断,环境需延续,报错即资产。按阶段分周推进,三个月标准周期,时间紧张者宜拉长周期。四维度自查补短板,确认环境、调整安排,执行即进度。

379
上一篇: 如何在Ubuntu 14.04上配置Collectd为Graphite收集系统指标
下一篇: 生产环境构建指南:Web应用——部署
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值