Windows上搭建一个网站(基本生产环境)

前言

本博客记录的是Windows上一次网站搭建的过程,主要是在前端采用的是React,后端采用的是Flask,记录一下生产版本搭建流程和坑点,供有缘人一起进步,当然本博客还存在很多不足。

前端项目构建生产版本

React为例,在终端运行npm run build后,在项目根目录会出现build文件夹

npm run build

build文件夹内的文件:

配置运行前端的服务器(以apache为例)

配置文件(httpd.conf)在apache安装目录下的conf目录内

解除路由转发的限制:

我们在开发环境中可能用到了一些路由转发的中间件,如在React开发中使用http-proxy-middleware(运行在node.js上时使用的),构建了生产版本以后这个是不能再使用了。所以需要找到以下两个模块,关闭注释即可。

添加路由转发的规则:

前端使用的接口是/api/test,后端使用的是/test,后端的运行地址是127.0.0.1:5000,所以设置如下规则。其他路由转发同理。

配置文件最后一行修改超时时间:

apache的超时时间,关系着一些耗时请求。原为60即一分钟,如果apache发出网络请求后在1分钟内没有收到响应,会自己响应一个错误响应。所以需要根据后端耗时操作自行修改:

(这里是因为后端运行图像处理,所以设大了一点,具体的根据自己的实际情况设置即可)

前端运行在服务器上

配置apache的运行端口,如下设置在3000端口,根据自己的需要修改:

在配置文件中找到服务器的网站目录(也可以自己修改):

如果是使用的小皮面板,也可以在小皮面板上设置运行端口,并且查看服务器网站目录:

将前端生产版本(build文件夹内的文件)放入apache的网站目录:

启动服务器,并查看效果:

如图使用的小皮面板启动,但是需要在一个apache上启动多个前端服务的话,还需自行学习一下(因为我偷懒没学习)。也可以自行安装多个apache,分别配置以启动多个服务。小皮面板好像不能启动多个服务器。

查看3000端口,出现前端页面:

启动后端(以Flask为例)

这里还可以进一步升级,使用apache等服务器等运行,配置有一丢丢复杂,试了几次没成功就放弃了,可以自行学习一下。

设定好后端的相关配置,如运行端口,与前端服务器上的路由转发相匹配:

运行后端:

再次打开前端页面,查看和后端通信是否正常:

正常情况下是能完成通信的。至此,你已经完成了一个网站的搭建,如果是租用的公网服务器,只需要再将域名解析到服务器的IP即可。如果你是内网的服务器,你还需要进行如下内网穿透。

内网穿透

找到一个自己喜欢的内网穿透工具:

如果不需要自定义域名的话,市面上大多数内网穿透根据都能满足你,但是需要自定义已购买的域名并且自定义域名不想备案的话,需要内网穿透平台具有香港或国外的节点(目前找到两个, Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器,飞鸽内网穿透官网 (fgnwct.com),也可以自行查找。Tips:前一个应该稳妥一点。两个都买了,依据我使用的情况,后者可能会受限于网络,三台机子,只有一台能成功运行,可能是还需要根据网络进行配置。前者三台机子都成功运行。不过进了群发现,emmm,这两家的群主是一个人。)

按相关官网进行实名认证,购买隧道,购买完成后将隧道的端口修改到前端运行的端口,如3000端口:

 查看内网穿透工具指明的cname地址,登录开通域名的平台,进入控制台修改域名解析,解析到该地址:

 

 填入内网穿透提供的解析地址(CNAME),确定后等待域名解析更新完成。

到开通隧道的内网穿透平台,下载内网穿透客户端。有各种形式,下载自己喜欢的就行,客户端填入隧道ID,启动即可:

进入域名查看效果:

恭喜,你已经拥有一个可以通过域名访问的网站了(Tips:内网穿透注意别掉线咯)。不得不感叹,还是在Linux 上部署项目方便点,不过没办法,显卡在装了Windows的系统上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/148123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将AI技术与VR元宇宙相结合的整体解决方案

当前人工智能与VR虚拟现实两大热门技术的融合,正引领着人类走向更智能、更数字化、更便捷、更快速的时代。将这两者结合,AI智能检索应用到VR教学中,将为教育带来前所未有的好处。 个性化教学体验 通过AI智能检索,VR教学可以针对每…

Pandas+Matplotlib 数据分析

利用可视化探索图表 一、数据可视化与探索图 数据可视化是指用图形或表格的方式来呈现数据。图表能够清楚地呈现数据性质, 以及数据间或属性间的关系,可以轻易地让人看图释义。用户通过探索图(Exploratory Graph)可以了解数据的…

实在智能携手中国电信翼支付,全球首款Agent智能体亮相2023数字科技生态大会

11月10日-13日,中国电信与广东省人民政府联合主办的“2023数字科技生态大会”在广州隆重举行。本届大会以“数字科技焕新启航”为主题,邀请众多生态合作伙伴全方位展示数字科技新成果,包括数字新消费、产业数字化、智能电子、人工智能大模型等…

em/px/rem/vh/vw 的区别?

px px表示像素,所谓像素就是呈现在显示器上的一个个小点,每个像素点都是大小等同的,所以像素为绝对长度单位。 在移动端中存在设备像素比,px实际显示的大小是不确定,之所以认为px为绝对单位,在于px的大小和…

K-Means算法进行分类

已知数据集D中有9个数据点,分别是(1,2),(2,3), (2,1), (3,1),(2,4),(3,5),(4,3),(1,5),(4,2)。采用K-Means算法进行聚类,k2,设初始中心点为(1.1,2.2),(2.3,3.…

OpenAI发布会中不起眼的重大更新

上周,OpenAI的历史首届开发者大会上,OpenAI的首席执行官山姆奥特曼展示了一系列产品更新,包含了众多重磅功能,就算单独拿出来都能让科技圈震一震,一下能发布这么多也真是家底厚。 果不其然,接下来的一周&am…

Java拼图

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 创建一个代码类 和一个运行类 代码如下: package heima;import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import jav…

php正则表达式汇总

php正则表达式有"/pattern/“、”“、”$“、”.“、”[]“、”[]“、”[a-z]“、”[A-Z]“、”[0-9]“、”\d"、“\D”、“\w”、“\W”、“\s”、“\S”、“\b”、“*”、“”、“?”、“{n}”、“{n,}”、“{n,m}”、“\bword\b”、“(pattern)”、“x|y"和…

【数据标注】Label Studio用于机器学习标注

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、使用 Label Studio标注数据1.版本控制 二、Label Studio绑定机器学习后端三、重写机器学习后端四、通过api执行Label Studio动作 前言…

Hive语法,函数--学习笔记

1,排序处理 1.1cluster by排序 ,在Hive中使用order by排序时是全表扫描,且仅使用一个Reduce完成。 在海量数据待排序查询处理时,可以采用【先分桶再排序】的策略提升效率。此时, 就可以使用cluster by语法。 cluster…

RocketMQ(三):集成SpringBoot

RocketMQ系列文章 RocketMQ(一):基本概念和环境搭建 RocketMQ(二):原生API快速入门 RocketMQ(三):集成SpringBoot 目录 一、搭建环境二、不同类型消息1、同步消息2、异步消息3、单向消息4、延迟消息5、顺序消息6、带tag消息7、带key消息 一…

Accelerate 0.24.0文档 三:超大模型推理(内存估算、Sharded checkpoints、bitsandbytes量化、分布式推理)

文章目录 一、内存估算1.1 Gradio Demos1.2 The Command 二、使用Accelerate加载超大模型2.1 模型加载的常规流程2.2 加载空模型2.3 分片检查点(Sharded checkpoints)2.4 示例:使用Accelerate推理GPT2-1.5B2.5 device_map 三、bitsandbytes量…

3297:【例50.3】 平衡数《信息学奥赛一本通编程启蒙(C++版)》

3297:【例50.3】 平衡数《信息学奥赛一本通编程启蒙(C版)》 【题目描述】 平衡数:如果正整数 x 的每一位数字 d 恰好在 x 中出现了 d 次,则认为 x 是平衡数。例如 x122,其中 对于百位数 d1,其…

LeetCode【13】罗马数字转整数

题目: 思路: 第十二题的逆运算,方法同理。需要注意的是IV、IX、XL、XC、CD、CM这六种特殊的情况。正常情况下每个字符找到对应的数值累加,这六种特殊字符都是左边的数值比右边的数值小。 这里以IV举例,IV对应数字是1和…

详解如何使用Jenkins一键打包部署SpringBoot项目

目录 1、Jenkins简介 2、Jenkins的安装及配置 2.1、Docker环境下的安装​编辑 2.2、Jenkins的配置 3、打包部署SpringBoot应用 3.1、在Jenkins中创建执行任务 3.2、测试结果 1、Jenkins简介 任何简单操作的背后,都有一套相当复杂的机制。本文将以SpringBoot应…

C++ 好玩的约瑟夫环(单链表版本)

【题目描述】 有M个人,编号分别为1到M,玩约瑟夫环游戏,最初时按编号顺序排成队列;每遍游戏开始时,有一个正整数报数密码N,队列中人依次围坐成一圈,从队首的人开始报数,报到N的人出列…

文本向量化

文本向量化表示的输出比较 import timeimport torch from transformers import AutoTokenizer, AutoModelForMaskedLM, AutoModel# simcse相似度分数 def get_model_output(model, tokenizer, text_str):"""验证文本向量化表示的输出:param model: 模型的…

linux进程间通信之信号量

注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。 摘要 本文旨在深入探讨Linux进程间通信中的信号量机制,包括其工作原理、系统调用接口以及实际应用场景。通过理论分析和示例代码的解读,本文将帮助读者更好地理解信号…

开发者分享 | Ascend C算子开发及单算子调用

本文分享自《AscendC算子开发及单算子调用》,作者:goldpancake。 笔者在阅读Ascend C官方文档的过程中发现,对于初学者来说,尤其是第一次接触异构编程思想的初学者,有部分内容是无需特别关注的,例如算子工…

linux systemd start stop enable disable命令区别

一、systemd 的服务在三个文件件下 /lib/systemd/system /etc/systemd/system /usr/lib/systemd/system 终于明白这几个命令的区别 systemd star systemd stop systemd enable systemd disable 二、 1、用ssh服务为例,,ssh是客户端,远程ss…