当前位置: 首页 > news >正文

阿里云ubuntu建一个简单网页+公网访问+域名访问

创建简单网页应用服务器

创建一个简单的网页应用,可以在服务器上运行并从本地访问。使用Flask框架来实现这个功能

步骤1: 创建基本的Flask应用

首先创建一个简单的Flask应用,包含静态页面和一个简单的接口:

# app.py
from flask import Flask, render_template, jsonify
import os
​
app = Flask(__name__, template_folder='templates', static_folder='static')
​
@app.route('/')
def index():"""主页"""return render_template('index.html')
​
@app.route('/api/status')
def status():"""API状态检查"""return jsonify({"status": "running","message": "服务器运行正常","version": "1.0"})
​
if __name__ == '__main__':# 获取端口,如果环境变量中没有设置,则使用默认端口5000port = int(os.environ.get('PORT', 5000))# 设置host为0.0.0.0使得服务可以被外部访问app.run(host='0.0.0.0', port=port, debug=True)

步骤2: 创建HTML模板

创建一个简单的HTML页面:

<!-- templates/index.html -->
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>简单网页应用</title><link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
</head>
<body><div class="container"><h1>欢迎访问我的简单网页应用</h1><p>这是一个使用Flask创建的简单网页服务</p><div class="status-box"><h2>服务器状态</h2><div id="status-message">正在检查状态...</div></div>
​<div class="card"><h2>向量数据库演示</h2><p>这里可以放置Milvus相关的操作和展示内容</p><button id="demo-button">运行演示</button><div id="demo-results" class="results-container"></div></div></div>
​<script src="{{ url_for('static', filename='js/script.js') }}"></script>
</body>
</html>

步骤3: 添加CSS样式

/* static/css/style.css */
body {font-family: 'Arial', sans-serif;line-height: 1.6;margin: 0;padding: 0;background-color: #f4f4f4;color: #333;
}
​
.container {width: 80%;max-width: 1100px;margin: 0 auto;padding: 20px;
}
​
h1 {color: #2c3e50;text-align: center;margin-bottom: 30px;border-bottom: 2px solid #3498db;padding-bottom: 10px;
}
​
.status-box {background-color: #ecf0f1;border-radius: 5px;padding: 15px;margin-bottom: 20px;box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
​
.card {background: white;border-radius: 5px;padding: 20px;margin-bottom: 20px;box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
​
button {background: #3498db;color: white;border: none;padding: 10px 15px;border-radius: 4px;cursor: pointer;font-size: 16px;transition: background 0.3s;
}
​
button:hover {background: #2980b9;
}
​
.results-container {margin-top: 15px;padding: 15px;background: #f9f9f9;border-left: 3px solid #3498db;display: none;white-space: pre-wrap;
}
​
.status-ok {color: #27ae60;
}
​
.status-error {color: #e74c3c;
}

步骤4: 添加JavaScript脚本

// static/js/script.js
document.addEventListener('DOMContentLoaded', function() {// 检查服务器状态checkStatus();
​// 为演示按钮添加点击事件document.getElementById('demo-button').addEventListener('click', runDemo);
});
​
function checkStatus() {const statusElement = document.getElementById('status-message');fetch('/api/status').then(response => response.json()).then(data => {statusElement.innerHTML = `<span class="status-ok">✓</span> ${data.message}<br><small>版本: ${data.version}</small>`;statusElement.classList.add('status-ok');}).catch(error => {statusElement.textContent = `无法连接到服务器: ${error.message}`;statusElement.classList.add('status-error');});
}
​
function runDemo() {const resultsElement = document.getElementById('demo-results');resultsElement.style.display = 'block';resultsElement.textContent = '正在运行演示...';// 这里可以添加真实的API调用来运行Milvus演示// 为了简单起见,我们这里只是模拟一个延迟响应setTimeout(() => {resultsElement.innerHTML = `<h3>演示结果</h3><p>向量数据库连接成功!</p><p>创建集合: demo_collection_${Date.now()}</p><p>插入20条记录...</p><p>创建索引: IVF_FLAT</p><p>执行向量搜索...</p><p>查询完成!</p>`;}, 1500);
}

步骤5: 目录结构

目录结构如下:

webpage/
├── app.py
├── templates/
│   └── index.html
└── static/├── css/│   └── style.css└── js/└── script.js

步骤6: 安装依赖并运行

  1. 在服务器上安装必要的依赖:

pip install flask
  1. 运行应用:

python app.py

如果你想让应用在后台运行:

nohup python app.py &

步骤7: 设置防火墙和访问权限

确保服务器防火墙允许5000端口(或你设置的其他端口)的访问:

# Ubuntu/Debian系统
sudo ufw allow 5000
​
# CentOS/RHEL系统
sudo firewall-cmd --zone=public --add-port=5000/tcp --permanent
sudo firewall-cmd --reload

步骤8: 访问网页

在本地浏览器中输入:http://服务器IP地址:5000
例如:http://192.168.1.100:5000

高级选项(可选)

  1. 使用Gunicorn作为生产级WSGI服务器:

pip install gunicorn
gunicorn -b 0.0.0.0:5000 app:app
  1. 配置Nginx作为反向代理:

server {listen 80;server_name 你的域名或IP;
​location / {proxy_pass http://127.0.0.1:5000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}

这样就能通过80端口直接访问你的应用。

通过这个简单的网页应用,你可以在浏览器中访问并展示相关内容。

域名解析 

先买个域名,然后再配

阿里云-控制台首页-云解析DNS-解析设置

http://www.dtcms.com/a/286871.html

相关文章:

  • android14截屏
  • 短视频矩阵系统:从源头到开发的全面解析
  • 电源PCB设计的热管理攻坚战:从散热瓶颈到高功率密度突破
  • 3.0 - 指针-序列化
  • 傅里叶积分法求解偏微分方程
  • 第七章 愿景09 海波龙的坑
  • 【Python练习】048. 编写一个函数,实现简单的命令行接口,接受用户输入并响应
  • springCloud -- 微服务01
  • MoveIt
  • GaussDB join 连接的用法
  • 已经安装numpy,但是报错ModuleNotFoundError: No module named ‘numpy‘
  • 船舶终端数据采集与监管平台解决方案
  • EasyGBS算法算力云平台:算法仓百种算法,全形态算力协同
  • Python 之地址编码识别
  • 判断数据类型的方法
  • 分享|技师院校人工智能技术应用专业—数字人教学辅助平台有哪些特点
  • java常见的jvm内存分析工具
  • hive的sql优化思路-明白底层运行逻辑
  • 机械材料计算软件,快速核算重量
  • MySQL 插入时间 更新时间
  • android版本编译问题之Hvac 应用体积优化问题处理记录
  • 大模型微调流程解读:基于Qwen2.5-3B-Instruct的LoRA高效微调全流程解析
  • 讯方·智汇云校 | 课程和优势介绍
  • Glary Utilities (PC维护百宝箱) v6.24.0.28 便携版
  • Composer 可以通过指定 PHP 版本运行
  • vue2 面试题及详细答案150道(71 - 80)
  • 从 C# 到 Python:6 天极速入门(第二天)
  • 解决网络问题基本步骤
  • 【52】MFC入门到精通——MFC串口助手(二)---通信版(发送数据 、发送文件、数据转换、清空发送区、打开/关闭文件),附源码
  • 路由的概述