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的系统上。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IPv4数据报格式

IPv4是IP协议的第四个版本(版本1-3和版本5都未曾使用过)IP地址不能反映任何有关主机位置的地理信息以前还有个逆地址解析协议RAPR(Reverse APR),它的作用是使只知道自己MAC地址的主机能通过RAPR找到其IP地址,而现在的DHCP(Dynamic Host Configuration Pr…

智慧城市指挥中心,大屏幕究竟有什么用?

目前很多地区有在兴建智慧城市的项目,其城市指挥中心内一般都建有一张巨大的屏幕,这张屏幕究竟有什么用?是否可以用普通的电脑显示器进行代替呢? 智慧城市指挥中心内的巨大屏幕是智慧城市项目中的重要组成部分,其作用不…

回溯算法(3)--n皇后问题及回溯法相关习题

一、n皇后问题 1、概述 n皇后要求在一个nn的棋盘上放置n个皇后,使得他们彼此不受攻击,皇后可以攻击同一行、同一列、同一斜线上的敌人,所以n皇后问题要求寻找在棋盘上放置这n个皇后的方案,使得任意两个皇后都不在同一行、同一列或…

​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】 课本里章节里所有蓝色字体的思维导图

带您识别RJ45网口连接器/网口插座口的LED灯的平脚/斜脚,带弹/不带弹细节区分

Hqst华强盛(盈盛电子)导读:网口连接器,网口插座,也叫网口母座,因为产品规格众多,常常因为细小差别,耽误工程设计级或者生产排期延误,今天就带大家一起来认识下平脚RJ45网口连接器/网口插座与斜脚…

算法设计与分析 | 分治棋盘

题目 在一个2^k * 2^k个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格&#xff0…

【动态规划】求解编辑距离问题

目录 问题描述递推关系运行实例时空复杂度优化Hirschberg 算法 问题描述 编辑距离问题是求解将⼀个字符串转换为另⼀个字符串所需的插⼊、删除、替换的最小次数。 C O M M O M → s u b C O M M U M → s u b C O M M U N → i n s C O M M U N E \mathbb{COMMOM} \overset{sub…

macbook ntfs能读不能复制 c盘ntfs拒绝访问怎么解决

如果你是一位Mac用户,你可能会遇到这样的问题:你的Mac能够读取NTFS格式的移动硬盘或U盘,但是不能往里面复制或者修改文件。或者,你的Windows电脑出现了C盘NTFS拒绝访问的错误,导致你无法正常使用系统。这些问题都是由于…

【vue2绘制echarts环状图】vue2使用echarts绘制环状图

效果图&#xff1a; 鼠标悬浮的效果图&#xff1a; 1&#xff1a;安装echarts yarn add echarts5.3.2 或 npm install echarts5.3.2 --save2.局部引入使用 在vue页面引入 <template><div><divref"myChart"style"{width: 400px;height: 350…

VMware Workstation Pro 12 ubuntu 20.04 突然奔溃,重新打开后导致win11系统蓝屏问题

1、虚拟机在执行一个程序时候&#xff0c;突然导致系统win11蓝屏 2、重新打开提示磁盘打开异常&#xff0c;网络搜索发现要删除磁盘lock文件&#xff0c;删除后&#xff0c;重启过程中还是会报各种异常 后来把所有的临时文件都删除了&#xff0c;就可以了 临时文件&#xff1…

如何去开发一个springboot starter

如何去开发一个springboot starter 我们在平时用 Java 开发的时候&#xff0c;在 pom.xml 文件中引入一个依赖就可以很方便的使用了&#xff0c;但是你们知道这是如何实现的吗。 现在我们就来解决这一个问题&#xff01; 创建 SpringBoot 项目 首先我们要做的就是把你想要给别…

wpf devexpress 开始点

此教程示范如何创建registration form和DevExpress WPF Data Editors 开始点 此项目源码 这个解决方案包含几个项目-每一个项目对应一个教程 RegistrationForm.BaseProject项目是基于工作的解决方案。项目包含三个视图&#xff1a;MainView&#xff0c;RegistraionView&…

Os-ByteSec

Os-ByteSec 一、主机发现和端口扫描 主机发现&#xff0c;靶机地址192.168.80.144 端口扫描&#xff0c;开放了80、139、445、2525端口 二、信息收集 访问80端口 路径扫描 dirsearch -u "http://192.168.80.144/" -e *访问扫描出来的路径&#xff0c;没有发现…

IO流-序列化流

一&#xff0c;序列化&#xff08;把java对象写到对象中去&#xff09; 二&#xff0c; Object OutputStream(对象字节输出流) 三&#xff0c;案例 package BigDecimal;import java.io.FileOutputStream; import java.io.ObjectOutputStream;public class Main {public static…

​软考-高级-系统架构设计师教程(清华第2版)【第14章 云原生架构设计理论与实践(P496~526)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第14章 云原生架构设计理论与实践&#xff08;P496~526&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

​软考-高级-系统架构设计师教程(清华第2版)【第13章 层次式架构设计理论与实践(P466~495)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第13章 层次式架构设计理论与实践&#xff08;P466~495&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

数据库的分库分表 详解

前言 一个系统随着用户量上升&#xff0c;产生的数据也越来越多&#xff0c;到达一定程度&#xff0c;数据库就会产生瓶颈。 首先单机数据库所能承载的连接数&#xff0c;io和吞吐量都是有限的&#xff0c;并发量上来数据库就渐渐顶不住了。 如果单表的数据量过大&#xff0…

阿里巴巴java开发手册-编程规约

编程规约 命名风格常量定义代码格式OOP 规约日期时间集合处理并发处理控制语句注释规约前后端规约其他 命名风格 【强制】代码中的命名均不能以下划线或美元符号开始&#xff0c;也不能以下划线或美元符号结束。 反例&#xff1a;_name / name / n a m e / n a m e / n a m e…

腾讯云服务器租用价格,腾讯云服务器价格流量怎么算?

首先&#xff0c;让我们来看看腾讯云服务器租用价格。根据您的需求不同&#xff0c;腾讯云提供了多种不同的配置选项&#xff0c;从轻量级应用服务器到高性能的GPU服务器&#xff0c;都可以满足您的需求。以下是一些常见的腾讯云服务器租用价格&#xff1a; 一、腾讯云服务器租…

vs2017 编译Qt 5.11.2 源码

SDK 10.0.22000.194 有 2种编译方式 &#xff0c;第二种 看下面 方式一: 1、问题描述&#xff1a; 使用VS编译程序时&#xff0c;运行库选择多线程&#xff08;/MT&#xff09;&#xff0c;表示采用多线程静态release的方式进行编译。 但是&#xff0c;发现编译是不能通过的…