手把手带你跑通网站上线全流程(一个简单的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;  # 填服务器的IP
    location / {
      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, HTTPServer

class 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>

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值