手把手带你跑通网站上线全流程(一个简单的HTML和Python服务端完整上线流程)

我将向你介绍如何将一个网站部署到公网,包含完整流程。

前端静态网站

静态网站文件

首先需要准备一个简单的网页文件用于展示页面

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>一个很简单的静态页面</title>
</head>
<body style="max-width: 1600px; text-align: center; margin: 40px auto; border: 1px solid black; border-radius: 30px;"><h1 style="font-size: 128px;">各位大佬</h1><p style="font-size: 96px;">给个三连吧😁</p>
</body>
</html>

效果如下:在这里插入图片描述

服务器购买、

接下来我们需要购买一个云服务器,对于学生和新用户来说有很便宜的选项。

学生特惠10.14元/月
新用户免费试用数十款产品

我这边因为是教学所以就选个按量付费,可以随时退订服务器。
接下来进入控制台修改密码,找到公网IP,链接到服务器。

服务部署

接下来上传静态资源文件夹到服务器

# 在服务器执行!!
# 在服务器创建一个文件夹用于存放网页静态文件
mkdir -p /var/www/html/bitforest# 在本地的终端上执行!!
# 将本地的文件上传到服务器
scp ./Desktop/bitforest/index.html root@47.100.83.142:/var/www/html/bitforest/

安装nginx

apt update
apt install nginx

这一步在浏览器打开对应IP的内容如果能看到下面这个页面说明nginx配置没问题,如果看不到可能是端口没开放或者安装nginx失败了。
更改nginx配置文件

nano /etc/nginx/nginx.conf

需要创建一个新的server用于这个静态网站

http {# ...server {listen 80;server_name 47.100.83.142;  # 填服务器的IPlocation / {root /var/www/html/bitforest;index index.html;}}
}

然后更新下nginx的配置文件

nginx -s reload

重新打开47.100.83.142,即可看到网站

后端动态数据

用python实现一个简单的ping服务器

使用 nano server.py 新建下面这个文件,并执行 python3 server.py 即可启动一个简单的服务

from http.server import BaseHTTPRequestHandler, HTTPServerclass RequestHandler(BaseHTTPRequestHandler):def do_GET(self):if self.path == '/api/ping':self.send_response(200)self.send_header('Content-type', 'text/plain')self.end_headers()self.wfile.write(b'pong\n')def run_server(port):server_address = ('0.0.0.0', port)httpd = HTTPServer(server_address, RequestHandler)print(f'Starting server on port {port}...')httpd.serve_forever()if __name__ == '__main__':run_server(8000)

另外启动一个服务器的终端执行检测,看到端口是否是通的,返回了pong

curl localhost:8000/ping
pong  # 这个是返回的结果

接下来需要让服务在后端运行,这里直接选择运行命令

nohup python3 server.py &

对公网提供服务

现在还是没有办法访问到的,有2种办法可以解决这个问题,第一种是打开服务器的8000端口,另一种办法是使用nginx反向代理。

  • 打开8000端口是最方便的,但是也将服务器整个暴露在了公网,也需要服务器有公网IP。
  • 而使用nginx会有比较多的优势:
    • 服务器不需要暴露,也不需要公网IP地址,可以处于完全私有的内网环境中
    • 后续https配置方便,可以在同一的nginx网关入口配置,不需要介入到项目的开发中
    • 可以实现简单的负载均衡

nginx配置

server {listen 80;server_name 47.100.83.142;location /api {proxy_pass localhost:8000;}location / {root /var/www/html/bitforest;index index.html;}
}

前端获取服务端数据

编辑一下前端的文件,并重新上传

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>一个很简单的静态页面</title>
</head>
<body style="max-width: 1600px; text-align: center; margin: 40px auto; border: 1px solid black; border-radius: 30px;"><h1 style="font-size: 128px;">各位大佬</h1><p style="font-size: 96px;">给个三连吧😁</p><p id="result">获取服务器状态...</p>
</body>
<script>
fetch('/api/ping').then(resp => resp.text()).then(resp => {const resultElement = document.getElementById('result');resultElement.textContent = resp;})
</script>
</html>

至此,一个完整的前后端服务都已经部署完毕

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

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

相关文章

2023深圳杯A题完整代码模型

已更新深圳杯A题全部版本&#xff0c;文末获取&#xff01; 摘要 现代社会&#xff0c;随着生活方式的变化和工作压力的增大&#xff0c;慢性非传染性疾病日益成为威胁公众健康的主要问题。心脑血管疾病、糖尿病、恶性肿瘤及慢性阻塞性肺病等慢性病的发病率呈现出上升趋势。为…

23款奔驰AMG GT50更换原厂运动排气系统,战斗感立马提升了

改装运动排气&#xff0c;原车中控的按键组也是需要更换的。与原车按键相比&#xff0c;只是多了一个排气的控制按键&#xff0c;也正是这个按键&#xff0c;能让车辆可静可怒&#xff0c;安静与怒吼就在一键之间。

linux_常用命令

一、日常使用命令/常用快捷键命令 开关机命令 1、shutdown –h now&#xff1a;立刻进行关机 2、shutdown –r now&#xff1a;现在重新启动计算机 3、reboot&#xff1a;现在重新启动计算机 4、su -&#xff1a;切换用户&#xff1b;passwd&#xff1a;修改用户密码 5、logou…

ChatGLM2-6B在Windows下的微调

ChatGLM2-6B在Windows下的微调 零、重要参考资料 1、ChatGLM2-6B! 我跑通啦&#xff01;本地部署微调&#xff08;windows系统&#xff09;&#xff1a;这是最关键的一篇文章&#xff0c;提供了Windows下的脚本 2、LangChain ChatGLM2-6B 搭建个人专属知识库&#xff1a;提供…

计算机网络—TCP

这里写目录标题 TCP头格式有哪些为什么需要TCP&#xff0c;TCP工作在哪什么是TCP什么是TCP连接如何确定一个TCP连接TCP和UDP的区别&#xff0c;以及场景TCP和UDP能共用一个端口&#xff1f;TCP的建立TCP三次握手过程为什么是三次握手、不是两次、四次why每次建立连接&#xff0…

2023年游戏买量能怎么玩?

疫情过后&#xff0c;一地鸡毛。游戏行业的日子也不好过。来看看移动游戏收入&#xff1a;2022年&#xff0c;移动游戏收入达到920亿美元&#xff0c;同比下降6.4%。这告诉我们&#xff0c;2022年对移动游戏市场来说是一个小挫折。 但不管是下挫还是上升&#xff0c;移动游戏市…

python技术栈 之 单元测试中mock的使用

一、什么是mock&#xff1f; mock测试就是在测试过程中&#xff0c;对于某些不容易构造或者不容易获取的对象&#xff0c;用一个虚拟的对象来创建以便测试的测试方法。 二、mock的作用 特别是开发过程中上下游未完成的工序导致当前无法测试&#xff0c;需要虚拟某些特定对象…

机器学习深度学习——RNN的从零开始实现与简洁实现

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——循环神经网络RNN &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们有所帮…

React实现关键字高亮

先看效果&#xff1a; 实现很简单通过以下这个函数&#xff1a; highLight (text, keyword ) > {return text.split(keyword).flatMap(str > [<span style{{ color: red, fontWeight: bold }}>{keyword}</span>, str]).slice(1);}展示某段文本时调用该函数…

完成图像反差处理

bmp图像的前54字节为图像头&#xff0c;第19个字节开始4字节为图像宽&#xff0c;第23字节开始4字节为图像高&#xff0c;图像大小为&#xff1a;972*720*3542099574&#xff0c;为宽*高*像素点头&#xff0c;如下&#xff1a; 图像的反差处理

Android系统-ServiceManager2

目录 引言&#xff1a; 获取ServiceManager 流程图 注册系统服务 获取系统服务 引言&#xff1a; 注册或使用服务之前&#xff0c;需要通过ServiceManager这个DNS来找到对应的服务。那怎么找到ServiceManager呢&#xff1f; 怎么注册系统服务&#xff1f; 怎么获取系统…

Golang 函数定义及使用

文章目录 一、函数定义格式二、函数定义及使用 一、函数定义格式 //func: 函数定义关键字 //function_name&#xff1a;函数名称 //parameter_List: 函数参数列表&#xff0c;多个时使用逗号拆分 //return_types&#xff1a;函数返回类型&#xff0c;返回多个值时使用逗号拆分…

SpringBoot 2.1.7.RELEASE + Activiti 5.18.0 喂饭级练习手册

环境准备 win10 eclipse 2023-03 eclipse Activiti插件 Mysql 5.x Activiti的作用等不再赘叙&#xff0c;直接上代码和细节 POM <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId>…

web前端之CSS操作

文章目录 一、CSS操作1.1 html元素的style属性1.2 元素节点的style属性1.3 cssText属性 二、事件2.1 事件处理程序2.1.1 html事件2.1.2 DOM0事件&#xff08;适合单个事件&#xff09;2.1.3 DOM2事件&#xff08;适合多个事件&#xff09; 2.2 事件之鼠标事件2.3 事件之Event事…

Python分享之 Spider

一、网络爬虫 网络爬虫又被称为网络蜘蛛&#xff0c;我们可以把互联网想象成一个蜘蛛网&#xff0c;每一个网站都是一个节点&#xff0c;我们可以使用一只蜘蛛去各个网页抓取我们想要的资源。举一个最简单的例子&#xff0c;你在百度和谷歌中输入‘Python&#xff0c;会有大量和…

选择最适合自己的笔记本

选择最适合自己的笔记本电脑 一、了解笔记本品牌一线品牌准一线品牌二线品牌三线品牌 二、笔记本入手渠道笔记本入手渠道 三、根据需求选择机型使用需求1.日常使用2.商务办公、财务3.轻度剪辑、ps4.代码5.创意设计6.游戏 四、笔记本电脑配置如何选1.cpu2.显卡&#xff08;GPU&a…

Vue响应式数据的原理

在 vue2 的响应式中&#xff0c;存在着添加属性、删除属性、以及通过下标修改数组&#xff0c;但页面不会自动更新的问题。而这些问题在 vue3 中都得以解决。 vue3 采用了 proxy 代理&#xff0c;用于拦截对象中任意属性的变化&#xff0c;包括&#xff1a;属性的读写、属性的…

UTONMOS:元宇宙在网络游戏领域得到充分运用

元宇宙到底是个啥&#xff1f;这个词大概意思应该就是人类能从真实世界进入一个虚拟世界体验另一种生活&#xff0c;这个虚拟的世界就叫“元宇宙”。 从科幻走入现实&#xff0c;元宇宙究竟有什么用途&#xff1f;它离我们到底还有多远&#xff1f;又将给我们的生活带来哪些变…

微服务——数据同步

问题分析 mysql和redis之间有数据同步问题&#xff0c;ES和mysql之间也有数据同步问题。 单体项目可以在crud时就直接去修改&#xff0c;但在微服务里面不同的服务不行。 方案一 方案二 方案三 总结 导入酒店管理项目 倒入完成功启动后可以看见数据成功获取到了 声明队列和…

idea中如何处理飘红提示

idea中如何处理飘红提示 在写sql时&#xff0c;总是会提示各种错误 查找资料&#xff0c;大部分都是说关提示&#xff0c;这里把错误提示选择为None即可 关掉以后&#xff0c;也确实不显示任何提示了&#xff0c;但总有一种掩耳盗铃的感觉 这个sms表明明存在&#xff0c;但是还…