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

QVQ-72B:消费级显卡可运行的开源视觉推理大模型 视觉推理(Visual Reasoning)是多模态AI的核心能力,指模型从图像中提取语义、建立逻辑链条并生成可验证结论的过程。其技术基础涵盖视觉编码、跨模态对齐、符号化推理与语言生成四大环节。相比传统‘看图说话’模型,真正具备视觉推理能力的系统需支持可追溯的中间推导、结构化空间定位(如[x,y,w,h]坐标)及领域知识注入。这类能力在工业质检、智能教育、医疗初筛等离线、高可控性场景中具有不可替代的技术价值。QVQ-72B作为当前少有的72B规模、Apache 2.0开源、支持单卡RTX 4090本地端到端 阅读详情

提供:ZStack云计算

系列教程

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

内容简介

在今天的教程中,我们将探讨如何部署示例PHP应用、WordPress以及专有DNS:

用户可通过域名经由HTTPS访问我们的应用,而此域名则指向负载均衡器。负载均衡器将充当应用服务器的反向代理,而应用服务器则接入数据库服务器。经过简单的服务器配置,专有DNS将允许我们使用名称指向服务器的专有网络地址。

以上各组件运行在六台服务器之上,分别为:

  • 专有DNS (ns1与ns2)
  • 数据库服务器(db1)
  • 应用服务器(app1与app2)
  • 负载均衡器(lb1)

下面开始设置DNS。

专有DNS服务器

在运行规模庞大的服务器系统时,使用域名进行寻址无疑是一项重要的实现基础——因为我们可以通过更新DNS记录轻松更换服务器,而无需直接面对令人头痛的IP地址配置文件。在本示例中,我们将设置自己的DNS服务器,从而根据域名而非IP地址引用服务器的专有网络地址。

我们利用“nyc3.example.com”下的主机名称作为每台服务器的专有网络地址。举例来说,数据库服务器的专有网络地址将为“db1.nyc3.example.com”,其在解析后将指向数据库服务器的专有IP地址。请注意,示例子域名几乎可以任意设定,我们通常会选择具有解释性的表达。在本示例中,“nyc3”代表的是该服务器位于NYC3数据中心,而“example.com”则为我们应用的域名。

为每台服务器添加DNS记录的具体方式请参阅以下文章:

在DNS部分完成后,大家应该已经拥有两台BINd服务器:ns1与ns2。如果大家已经了解设置中全部服务器的专有IP地址,则可直接将其添加到DNS当中; 如果还不清楚,可在创建服务器的过程中再添加对应的DNS记录。

接下来着手设置数据库服务器。

设置数据库服务器

由于我们需要对应用服务器进行负载均衡,因此需要将其从应用服务器中独立出来。将数据库服务器与应用服务器中解耦出来是一种常见的应用规模扩展操作,具体方式可参阅PHP应用横向扩展:实例概述。

以上教程中已经涵盖了全部必要步骤,不过大家也可以参阅如何设置一套远程MySQL数据库以了解如何设置一套远程解耦MySQL数据库服务器。

安装MySQL

在数据库服务器db1中安装MySQL Server:

- sudo apt-get update

- sudo apt-get -y install mysql-server

在提示符中输入要使用的MySQL root密码。现在运行:

- sudo mysql_install_db

- sudo mysql_secure_installation

这里我们需要输入之前设定的MySQL管理员密码。随后,系统会询问是否要更改密码。如果密码内容没问题,可以按“N”选择不。其它询问内容全部选择默认即可。

配置MySQL以监听专有网络接口

打开MySQL配置文件:

- sudo vi /etc/mysql/my.cnf

找到其中的bind-address设置,将其变更为数据库服务器的专有网络地址:

/etc/mysql/my.cnf

bind-address            = db1.nyc3.example.com

保存并退出。

重启MySQL:

- sudo service mysql restart
设置数据库与数据库用户

现在我们需要创建数据库及数据库用户,以供应用服务器接入。

进入MySQL控制台:

- mysql -u root -p

在提示符处输入MySQL root密码。

为应用创建数据库:

- CREATE DATABASE app;

MySQL会将各用户关联至其应当接入的服务器。在本示例中,我们拥有两台应用服务器进行接入,因此我们应当为其分别创建用户。创建一个名为“appuser”的数据库用户,其能够接入至任一应用服务器(app1与app2)的专有网络地址。大家应当为每个用户使用同样的密码:

- CREATE USER 'appuser'@'app1.nyc3.example.com' IDENTIFIED BY 'password';

- CREATE USER 'appuser'@'app2.nyc3.example.com' IDENTIFIED BY 'password';

我们在后文中需要具体配置最终数据库用户权限,不过在这里暂时为appuser分配全部appdatabase控制权限:

- GRANT ALL PRIVILEGES ON app.* TO 'appuser'@'app1.nyc3.example.com';

- GRANT ALL PRIVILEGES ON app.* TO 'appuser'@'app2.nyc3.example.com';

- FLUSH PRIVILEGES;

宽松的权限设定保证了应用安装器能够将应用安装在数据库当中。如果大家拥有两台以上应用服务器,则应当在这里创建全部必要的数据库用户。

退出MySQL提示符:

- exit

现在数据库服务器设置已经完成,下面设置应用服务器。

设置应用服务器

应用服务器负责运行我们的应用代码,其将接入数据库服务器。本示例中的应用为WordPress,其属于PHP应用且通过Apache或者Nginx等Web服务器起效。由于我们需要对应用服务器进行负载均衡,因此应当设置两台相同的服务器。

这部分工作属于应用服务器设置中的必要步骤,大家可以参阅如何设置一套远程数据库中的“设置Web服务器”章节。

安装Apache与PHP

接下来在app1与app2上安装Apache与PHP:

- sudo apt-get update

- sudo apt-get -y install apache2 php5-mysql php5 libapache2-mod-php5 php5-mcrypt
配置Apache

我们将在负载均衡服务器上使用HAProxy以处理SSL终端,因此我们不允许用户直接访问应用服务器。在这里,我们将把Apache与每台服务器的专有网络地址相绑定。

在两台应用服务器上分别打开Apache端口配置文件。在默认情况下,其应为ports.conf文件:

- sudo vi /etc/apache2/ports.conf

找到Listen 80一行,向其中添加自己的专有IP地址:

Apache ports.conf — Listen on private interface

Listen private_IP:80

保存并退出。这部分内容将配置Apache只监听该专有网络接口,意味着其无法通过公共IP地址或者主机名称接受访问。

重启Apache以应用变更:

- sudo service apache2 restart

Apache现在只接受应用服务器专有网络地址的访问。在后文中,我们将配置负载均衡器以由此发送用户请求。

下载并配置应用

在本示例中,我们使用WordPress作为实际应用。如果大家使用其它PHP应用,则可下载并执行相关配置,并直接跳过此章节。

在第一台应用服务器app1中下载WordPress压缩包:

- cd ~

- wget http://wordpress.org/latest.tar.gz

进行解压缩:

- tar xvf latest.tar.gz

前往解压缩目录:

- cd wordpress

WordPress需要创建一个wp-content/uploads目录以作为上传目录:

- mkdir wp-content/uploads

我们这里使用示例WordPress配置文件作为模板。将其复制到正确位置:

- cp wp-config-sample.php wp-config.php

打开该配置文件并进行编辑:

- vi wp-config.php

变更以下代码行中的高亮部分以配置WordPress数据库连接方式:

wp-config.php

/** The name of the database for WordPress */
define('DB_NAME', 'app');

/** MySQL database username */
define('DB_USER', 'appuser');

/** MySQL database password */
define('DB_PASSWORD', 'password');

/** MySQL hostname */
define('DB_HOST', 'db1.nyc3.example..com');

由于我们需要在负载均衡服务器上使用TLS/SSL加密,因此需要添加以下内容以确保WordPress了解其位于使用SSL的反向代理之后:

define('FORCE_SSL_ADMIN', true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
   $_SERVER['HTTPS']='on';

大家还需要更新其中的key与salt,因此可以在必要时取消其中的cookies。但本示例将忽略这方面内容,旨在确保其在各应用服务器上皆保持一致。

保存并退出。

WordPress现在已经配置完成,但其文件必须被复制到正确位置以供Web服务器软件使用。

将应用文件复制至Document Root处

现在,我们已经完成了应用配置,接下来需要将其复制至Apache的document root当中,以供网站访问者查看。

在本示例中,我们将使用Apache的默认DocumentRoot位置/var/www/html。

首先删除默认index.html文件:

- sudo rm /var/www/html/index.html

而后使用rsync将WordPress文件复制到/var/www/html,同时生成www-data持有者(即Apache的运行用户身份):

- sudo rsync -avP ~/wordpress/ /var/www/html

- sudo chgrp -R www-data /var/www/html/*

我们的app1应用服务器已经设置完成。接下来设置另一台应用服务器。

将应用文件复制至另一服务器

为了确保应用文件在不同应用服务器上保持一致,这里我们需要将设置文件复制到Web的document root当中。在使用WordPress的情况下,利用Web界面上传文件并安装插件以将这些文件保存在特定服务器上。如果这些文件未能被复制到全部应用服务器上,则部分用户可能会查看到存在图片缺失及插件错误的页面。如果大家选择的PHP应用并非WordPress,且未将任何数据(例如上传文件或者下载插件)保存至应用服务器,则可手动完成应用文件复制。在这种情况下,请使用rsync将应用文件从app1复制至app2。

GlusterFS可用于创建一套必要文件副本分卷,大家可参阅如何利用HAProxy充当WordPress应用服务器上的负载均衡器一文中的“同步Web应用文件”章节。

当复制工作完成后,两台应用服务器也都应配置就绪。下面设置负载均衡器。

设置负载均衡服务器

我们的负载均衡服务器将运行HAProxy,并作为应用服务器的反向代理负载均衡器。用户将通过https://www.example.com这一URL经由该负载均衡器访问我们的应用。

这部分内容属于负载均衡器服务器设置中的必要步骤,大家可参阅以下教程了解细节信息:

复制SSL证书

在lb1负载均衡服务器上执行以下步骤。

首先在容纳SSL证书的目录当中将现有证书、任意中间CA证书及证书密钥整合为单一.pem文件。例如(我们的证书位于/root/certs):

- cd /root/certs

- cat www.example.com.crt CAintermediate.ca-bundle www.example.com.key > www.example.com.pem

将该pem文件复制至/etc/ssl/private:

- sudo cp www.example.com.pem /etc/ssl/private/

该文件将供HAProxy为SSL终端使用。

安装HAProxy

在lb1负载均衡服务器上安装HAProxy:

- sudo add-apt-repository ppa:vbernat/haproxy-1.5

- sudo apt-get update

- sudo apt-get -y install haproxy

下面进行HAProxy配置。

HAProxy配置

我们需要利用设定、SSL终端以及正确的前端与后端配置HAProxy,从而确保其能够与应用服务器协同运作。

打开HAProxy配置文件进行编辑:

- sudo vi /etc/haproxy/haproxy.cfg
HAProxy配置:常规设置

我们首先需要将maxconn设定为一个合理的数字。此设定会影响到HAProxy所能允许的最大并发连接数量,进而影响到服务质量并预防Web服务器由于接收过多请求而发生崩溃。大家需要立足于实际环境进行考量。在配置中的全局部分添加以下行(并使用合理数值):

haproxy.cfg — maxconn

maxconn 2048

另外,添加以下行以配置所生成临时DHE key的最大数量:

haproxy.cfg — tune.ssl.default-dh-param

tune.ssl.default-dh-param 2048

接下来,在默认部分的mode http内容之下添加以下行:

haproxy.cfg

option forwardfor
option http-server-close

如果大家希望启用HAProxy状态页,则可在默认区段内添加以下行(利用安全值指定用户与密码部分):

haproxy.cfg

stats enable
stats uri /stats
stats realm Haproxy\ Statistics
stats auth user:password

如此一来,我们就能够在域名后添加/stats以查看HAProxy状态页面了。

先别急着关闭此配置文件!下面我们还需要添加代理配置。

HAProxy配置:代理

我们首先需要添加一套前端以处理输入的HTTP连接。在文件末尾,添加名为www-http的前端:

frontend www-http
bind www.example.com:80
reqadd X-Forwarded-Proto:\ http
default_backend app-backend

这套前端的作用在于接收HTTP连接并将其重复定向至HTTPS。

现在再添加一套前端以处理输入的HTTPS连接。确保指定正确的pem证书:

frontend www-https
bind www.example.com:443 ssl crt /etc/ssl/private/www.example.com.pem
reqadd X-Forwarded-Proto:\ https
default_backend app-backend

完成前端的配置之后,继续通过以下行添加后端:

backend app-backend
redirect scheme https if !{ ssl_fc }
server app1 app1.nyc3.example.com:80 check
server app2 app2.nyc3.example.com:80 check

此后端负责指定负载均衡器的流量将被发送至哪台应用服务器。另外,redirect scheme https行还会要求将HTTP连接重新定向至HTTPS。

现在保存并退出。HAProxy已经可以启动,但下面我们需要启动其日志记录功能。

启动HAProxy日志记录

打开rsyslog配置文件:

- sudo vi /etc/rsyslog.conf

而后找到以下行,取消其注释以启用UDP系统日志接收机制。修改后内容如下:

/etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514
$UDPServerAddress 127.0.0.1

现在重启rsyslog以应用新配置:

sudo service rsyslog restart

HAProxy日志记录功能已经启动!日志文件将在HAProxy启动后被保存为/var/log/haproxy.log。

重启HAProxy

重启HAProxy以应用变更:

- sudo service haproxy restart

我们的负载均衡器现在已经设置完成。

接下来,我们需要运行应用的安装脚本。

安装WordPress

在使用之前,我们必须首先运行WordPress安装脚本以准备其所使用的数据库。

在浏览器中打开以下站点:

https://www.example.com/wp-admin/install.php

这里将显示WordPress安装界面。填写表单并点击Install WordPress按钮。

WordPress安装完成后,该应用即可随时运行。

总结

作为应用的组成部分,服务器现在已经设置完成,而我们的应用也可交付使用。大家可以通过管理员用户身份查看日志,而普通用户也可通过对应域名经由HTTPS实现站点访问。

请对应用进行测试以确保其运行效果完全符合预期。

在后续教程当中,我们将了解如何为生产应用设置建立恢复规划:生产环境构建指南:Web应用——恢复规划。

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

翻译:diradw

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

相关推荐

如何在生产环境中部署您的Python项目:一步步指南

在本文中,我们详细探讨了如何在生产环境中部署Python项目的全过程。从代码质量的保障到选择合适的部署选项,再到环境设置、Web服务器配置、数据库部署、静态文件管理、安全性考虑、自动化部署、监控维护以及扩展优化,每一步都是确保项目稳定、高效运行的关键。

fudaihb的博客 5910

IntelliJ 启动tomcat卡住在Deployment of web application directory解决方案(超完美解决)

一、前因     最近项目需要经常使用maven打包发布到服务器上,打包的时候遇到缓存是很正常的事情,按常规都是使用 maven clean 命令清理target文件夹,但在清理次数多了的时候偶尔发现:清理完成后使用IntelliJ启动tomcat测试时,发现程序一直卡在这里 18-Feb-2019 16:32:51.812 信息 [localhost-startStop-1] org.ap...

JC.Lin的博客 4万+

信息: Deploying web application directory lx01

信息: Deploying web application directory lx01 2010-11-11 22:52:05 org.apache.catalina.startup.HostConfig deployDirectory 信息: Deploying web application directory blog 2010-11-11 22:52:06 org.apache.catalina.core.StandardContext listenerStart 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3915) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:519) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:581) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 2010-11-11 22:52:06 org.apache.catalina.core.StandardContext listenerStart 严重: Skipped installing application listeners due to previous error(s) 2010-11-11 22:52:06 org.apache.catalina.core.StandardContext start 严重: Error listenerStart 2010-11-11 22:52:06 org.apache.catalina.core.StandardContext start 严重: Context [/blog] startup failed due to previous errors ApplicationFilterConfig[name=EncodingFilter, filterClass=com.v512.guestbook.web.CharacterEncodingFilter]

Tomcat卡在Deployment of web application directory(把Web应用程序部署到目录)

除了普遍网上有的问题,还可能是 webapps 和 \work\Catalina\localhost 这个地方导致的。 毕竟大家部署可能都贪方便,自己本地部署了一次就整个tomcat弄上去服务器用,结果把大量的自己测试用的历史项目顺便放了上去,然后 tomcat 其实是卡住在部署这一堆项目里面。 还可能是 "一个或多个listeners启动失败" ,因为 tomcat 的 jdk 版本出了问题,如果考虑不影响系统的 JAVA_HOME,可以直接修改 startup.bat 在 setlocal 加个..

qq_28033719的博客 5397

Prometheus-2.53.1安装

Prometheus+Grafana安装

qlj062127的博客 1788

java实现自动发送微信QQ消息(可发图片)

自动发送微信/QQ/微博等消息 一:功能:实现发送QQ/微信/微博消息,程序控制。 效果演示(实现自动发生QQ微信消息给女友,发微博信息也可以就不演示了) 二:原理讲解:将剪贴板的内容给发送到QQ微信中去,复制粘贴发送。 模拟真实操作进行发送信息。 三:前期准备,软件安装,及初步测试。...

XURUNFA950827的博客 1万+

idea配置tomcat启动一直卡在 Deployment of web application directory的两种原因

今天用idea通过tomcat启动项目卡住了,这里做下记录 1.首先是网上普遍存在的原因,我的不是这种情况 linux或者部分unix系统提供随机数设备是/dev/random 和/dev/urandom ,urandom安全性没有random高,但random需要时间间隔生成随机数。jdk默认调用random。 ORACLE给到解决方案: 找到%JAVA_HOME%/jre/lib/secu...

东坡居士的博客 5844

ABAP CDS HAVING 全解析:聚合之后的精准过滤、最佳实践与可运行示例

摘要: 本文针对具备ABAP与CDS基础的开发者,详解HAVING在ABAP CDS中的核心用法。HAVING专用于过滤GROUP BY后的聚合结果(如SUM、COUNT),与WHERE的分工明确:前者处理聚合值,后者过滤原始记录。通过销售额阈值、质量分析、财务对账三类典型场景,结合性能优化建议(如优先使用WHERE索引过滤),说明实际应用。文中提供经典CDS View与View Entity两种实现代码,并附Open SQL消费示例,帮助开发者快速落地。常见误区(如聚合条件误写至WHERE)与规避方法亦被

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

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

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

xiaoheshang_123的博客 1330

【花雕学编程】Arduino ESP32 SPP 之使用Servo库控制360度舵机正反转

使用 Servo 库控制 360 度舵机的正反转是 Arduino ESP32 SPP 应用中的一个重要案例,具有简易控制接口、灵活速度调节和高兼容性等特点,广泛应用于机器人、自动化装置和动态艺术等领域。在第三个案例中,使用map()函数将用户输入的速度参数(范围0-100)映射到舵机控制的角度(0-180),使得用户能够以更人性化的方式控制舵机速度。5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。

雕爷学编程 1469

RK3588 DDR5 方案

RK3588 DDR5方案支持多种LPDDR5/LPDDR5X内存型号,包括美光、三星、海力士、江波龙和佰维等品牌。文档详细列出了已验证的DDR5内存规格,涵盖2GB-16GB容量范围,提供组织形式、封装类型和测试状态等信息。其中美光型号最全面,支持12GB/16GB大容量方案。部分型号处于测试验证阶段(T/A),需量产进一步确认性能。该方案为RK3588平台开发提供可靠的内存选型参考。

501846585_QQAndroid_java 1085

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

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

xiaoheshang_123的博客 934

CAPL编程规范与最佳实践

通过本文的学习,读者应该对CAPL编程规范与最佳实践有了初步的了解,并能够编写高质量的CAPL脚本。在实际项目中,CAPL的应用非常广泛,希望读者能够通过不断的学习和实践,掌握更多的CAPL技巧,提高自己的开发能力。

闲人编程的博客 1749

Python之web服务利器Flask生产环境部署实践【基于gunicorn部署生产环境】

Python是一门非常友好的语言,学习成本很低,这也是我很喜欢写Python的原因之一,在与应用端或者是业务端做整合的时候我们经常会将模型或者是数据分析的应用做成可以被直接调用的web服务来提供外部的访问,在web服务搭建这一块,有很多的第三方库可以完成这一任务,这里列举出来我了解的web框架,欢迎补充: Django: Python Web应用开发框架 Diesel:基于Green...

Together_CZ的博客 1万+

10分钟搞定小红书爆款笔记爬取!Selenium模拟登录+数据解析全流程,新手也能落地

小红书爬虫实战的核心,是**“模拟真人操作+解析结构化数据”**——Selenium解决了动态页面和登录的问题,lxml解决了数据提取的问题,pandas解决了数据存储的问题。新手学爬虫不用一开始就啃复杂的反爬机制,先从这类“可见即可爬”的场景入手,掌握“模拟操作→数据解析→数据保存”的全流程,再逐步叠加异常处理、批量爬取、反爬应对等功能。需要注意的是:爬取数据仅用于个人学习和研究,不得用于商业用途,且需遵守小红书的用户协议,不要过度爬取导致服务器压力。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1730

Python在Genesis2000 CAM软件中的编程应用

Genesis2000是一款功能强大的计算机辅助制造(CAM)软件,它提供了广泛的功能和工具,用于帮助制造商进行CAD(计算机辅助设计)到CAM的转换。在Genesis2000中,我们可以利用Python的灵活性和功能来扩展软件的自定义能力,并通过编写脚本来自动化各种制造任务。例如,假设我们需要在Genesis2000中添加一个新的操作,用于自动计算零部件的重量。我们可以编写一个Python脚本,通过遍历模型的几何数据并应用相关的计算公式,来实现这个功能。

PixelEnigma的博客 2426

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

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

gitblog_00280的博客 866

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Gloo部署指南:将Rust WASM应用发布到生产环境的完整流程

Gloo是一个模块化工具包,专为使用Rust和WASM构建快速、可靠的Web应用程序和库而设计。本指南将带你完成从环境准备到生产部署的完整流程,帮助你轻松将Rust WASM应用通过Gloo框架发布到生产环境。 ## 📋 准备工作:部署环境搭建 在开始部署之前,确保你的开发环境中已安装以下工具: - **Rust环境**:推荐使用rustup安装最新稳定版Rust - **wasm-pac

gitblog_00537的博客 829

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

OWL应用部署指南:从开发到生产环境的完整流程

OWL(Odoo Web Library)是一个用于构建结构化、动态且可维护Web应用的框架。本指南将带您完成从开发环境搭建到生产部署的完整流程,帮助您快速掌握OWL应用的部署技巧。 ## 1. 环境准备:快速搭建OWL开发环境 开始使用OWL前,需要准备基础开发环境。推荐使用Node.js(v20.0.0+)和npm作为包管理工具,确保项目依赖管理和构建流程顺畅。 ### 1.1 克隆OW

gitblog_01178的博客 954

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

AngularJS参考应用部署指南:从开发到生产环境

🚀 想要快速掌握AngularJS应用的完整部署流程吗?这份终极指南将带你从零开始,逐步完成AngularJS参考应用的开发环境搭建、配置优化和生产部署,让你轻松构建企业级Web应用! ## 📋 快速开始:环境准备与项目获取 首先,你需要准备基础的开发环境: ### 必备工具安装 - **Node.js** (版本 >= 0.8.4) - **Grunt-CLI** 和 **Karma*

gitblog_00916的博客 691

roslibjs部署指南:将ROS Web应用部署到生产环境的完整流程

roslibjs是The Standard ROS JavaScript Library,为开发者提供了在Web环境中与ROS(机器人操作系统)进行通信的强大工具。本指南将带你完成从环境准备到生产部署的完整流程,帮助你快速将基于roslibjs的ROS Web应用可靠地部署到生产环境。 ## 📋 部署前准备工作 在开始部署roslibjs应用前,需要确保你的开发环境满足以下要求: - No

gitblog_00745的博客 393

如何快速部署Rspack到生产环境:从构建到上线的完整指南

Rspack是一个基于Rust的快速Web打包工具,提供现代化的webpack API。本文将详细介绍如何将Rspack项目从构建到上线的完整流程,帮助新手和普通用户轻松完成生产环境部署。 ## 1. 准备工作:环境搭建与项目克隆 在开始部署之前,需要确保你的环境中已经安装了Node.js和Git。如果尚未安装,可以从官方网站下载并安装。 首先,克隆Rspack项目仓库: ```bash

gitblog_01109的博客 990

Viser部署指南:如何将你的3D应用轻松部署到生产环境

Viser是一款基于Web的Python 3D可视化工具,能够帮助开发者快速构建交互式3D应用。本指南将详细介绍如何将Viser应用从开发环境无缝部署到生产环境,让你的3D可视化项目在任何设备上都能高效运行。 ## 1. 准备工作:环境与依赖安装 在开始部署之前,确保你的系统满足以下要求: - Python 3.8或更高版本 - Node.js 14或更高版本(用于前端资源构建) - 网络服务

gitblog_01165的博客 944

Golden Layout构建与部署指南:从源码到生产环境的完整流程

Golden Layout是一个强大的JavaScript多窗口布局管理器,能够帮助开发者轻松实现网页组件的拖拽布局和重新排列。本文将详细介绍从源码构建到生产环境部署的完整流程,让您快速掌握这个优秀的布局工具。🚀 ## 项目概述与核心功能 Golden Layout为现代Web应用提供了专业的布局管理解决方案,支持原生弹出窗口、触摸操作、响应式设计等特性。它兼容Angular、Vue等主流框

gitblog_01043的博客 797

Bootstrap Switch 终极构建指南:从源码到生产环境部署

Bootstrap Switch 是一个功能强大的 JavaScript 库,能够将普通的复选框和单选按钮转换为美观的切换开关。无论你是使用 Bootstrap 2、3 还是 4,这个库都能完美兼容,为你的 Web 应用带来现代化的交互体验。 ## 快速获取项目源码 要开始使用 Bootstrap Switch,首先需要获取项目源码。你可以通过以下命令克隆仓库: ```bash git cl

gitblog_00482的博客 1131
上一篇: 生产环境构建指南:Web应用——概述
下一篇: 生产环境构建指南:Web应用——恢复规划
普通网友
博客等级 码龄10年 769粉丝 269原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值