申请阿里云服务器并搭建公网可支持数据上传下载的HTTP服务器

1. 前言

        拥有一台自己的云服务器可以做很多事情。阿里云服务器毫无疑问是国内最好的。

        阿里云服务器可以用于各种互联网应用的搭建和运行,提供稳定、高性能的服务。

        阿里云服务器的用途,包括但不限于以下几个方面:

  1. 网站托管:可以将网站的文件、数据库等部署在阿里云服务器上,提供稳定的网络环境和高性能的服务器资源,确保网站的正常运行。

  2. 应用部署:可以将各种应用程序、服务部署在阿里云服务器上,如电商系统、ERP系统、CRM系统等,提供稳定可靠的运行环境。

  3. 数据存储:可以将数据存储在阿里云服务器上,通过云存储服务进行备份和管理,确保数据的安全性和可靠性。

  4. 数据库服务:可以使用阿里云提供的数据库服务,如RDS(关系型数据库服务)、MongoDB、Redis等,提供高性能、可扩展的数据库服务。

  5. 虚拟化:可以使用阿里云提供的虚拟机服务,将应用程序运行在虚拟机上,实现资源的隔离和灵活的部署。

  6. 云存储:可以使用阿里云提供的云存储服务,如OSS(对象存储服务),将文件存储在云端,提供高可用、高可靠的存储服务。

  7. 安全防护:可以使用阿里云提供的安全防护服务,如DDoS防护、Web应用防火墙(WAF)等,保护服务器和应用程序免受网络攻击。

2. 申请阿里云服务器

2.1 登录注册

打开阿里云官网,在右上方点击"登录/注册",使用支付宝扫码登录

首页选择云服务器EC2, 打开后看到有“产品试用服务”,在个人使用版点击立即使用。每个新人用支付宝可以享受3个月的免费试用。

在创建实例页面上,根据需求选择实例配置,包括实例规格、操作系统、网络类型、存储等。

 设置安全组。一般设置“入方向”。如果你想SSH登录,那么需要开放22端口。如果你想建立HTTP服务器,那么80 或者443端口需要开放。

点击远程连接。阿里云提供了三种远程连接的方式。

设置“通过Workbench远程登录的密码”,但是此时无法直接登录。

首次登录必须选择VNC远程控制。VNC远程控制适用于实例处于启动中,或者实例处于运行中但操作系统尚未运行起来的场景下登陆实例。

按照提示设置VNC远程控制的密码,并登录成功。登录后检查网络配置,看到了eth0网卡里有本台实例的私有IP地址。

[root@iZbp1h36cszlkbxbf5gqeeZ ~]# ifconfig
bond0: flags=5123<UP,BROADCAST,MASTER,MULTICAST>  mtu 1500ether f2:ac:4a:db:46:4e  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255ether 02:42:cc:74:16:f8  txqueuelen 0  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 172.25.37.106  netmask 255.255.240.0  broadcast 172.25.47.255inet6 fe80::216:3eff:fe1e:ab8c  prefixlen 64  scopeid 0x20<link>ether 00:16:3e:1e:ab:8c  txqueuelen 1000  (Ethernet)RX packets 3870  bytes 3300682 (3.1 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 2692  bytes 411305 (401.6 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

修改/etc/ssh/sshd_config文件的配置

PermitRootLogin yes
PassworkAuthentication yes

重启SSH服务,使其生效

systemctl restart sshd

现在可以在本地计算机上通过SSH使用“公网IP + Workbench远程登录设置的密码”登录了。

3.用Flask搭建HTTP服务器

在centos上新建一个目录,使用python-Flask框架编写一个http服务器。实现最简单的上传下载功能。

3.1 目录结构

新建httpserver目录用于搭建本次的HTTP服务器。

在httpserver目录下创建templates目录,用于放置html文件。

新建app.py文件,用于编写HTTP服务器执行逻辑。

在httpserver目录下创建upload目录,用于放置上传下载的文件

[root@iZbp1h36cszlkbxbf5g**** httpserver]# ls -ltr
total 4
drwxr-xr-x 2 root root   24 Jul 17 22:14 templates
-rw-r--r-- 1 root root 1455 Jul 17 22:16 app.py
drwxr-xr-x 2 root root   24 Jul 17 22:17 upload
[root@iZbp1h36cszlkbxbf5g**** httpserver]# ls upload
upload.txt
[root@iZbp1h36cszlkbxbf5g**** httpserver]# ls templates
index.html

3.2 代码编写

编写 app.py(chatGPT给出来的代码稍微改了下)

from flask import Flask, render_template, request, send_from_directory
import osapp = Flask(__name__)
UPLOAD_FOLDER = 'upload'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER@app.route('/', methods=['GET'])
def index():files = get_file_list()return render_template('index.html', files=files)@app.route('/upload', methods=['POST'])
def upload_file():file = request.files['file']filename = file.filenamesave_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)file.save(save_path)return 'File uploaded successfully.'@app.route('/upload_data', defaults={'path': ''}, methods=['GET', 'POST'])
# @app.route('/<path:path>')
def upload_data(path):if request.method == 'POST':print('The upload data is: %s' % request.get_data())return 'Received!'@app.route('/download/<path:filename>', methods=['GET'])
def download_file(filename):folder_path = app.config['UPLOAD_FOLDER']return send_from_directory(folder_path, filename, as_attachment=True)# 文件删除
@app.route('/delete/<path:filename>', methods=['GET', 'POST'])
def delete_file(filename):file_path = app.config['UPLOAD_FOLDER']file_location = os.path.join(file_path, filename)if os.path.exists(file_location):os.remove(file_location)return 'File deleted successfully'else:return 'File not found'def get_file_list():folder_path = app.config['UPLOAD_FOLDER']files = []for filename in os.listdir(folder_path):if os.path.isfile(os.path.join(folder_path, filename)):files.append(filename)return filesif __name__ == '__main__':if not os.path.exists(app.config['UPLOAD_FOLDER']):os.makedirs(app.config['UPLOAD_FOLDER'])app.run(host="0.0.0.0", port=80)# app.run(debug=True)

编写index.html

<!DOCTYPE html>
<html>
<head><title>File Server</title><style>table {border-collapse: collapse;width: 100%;}th, td {text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #f2f2f2;}</style>
</head>
<body><h1>File Server</h1><h2>Upload File</h2><form action="/upload" method="POST" enctype="multipart/form-data"><input type="file" name="file" required><br><br><input type="submit" value="Upload"></form><h2>Download Files</h2><table><tr><th>Filename</th><th>Download</th><th>Delete</th></tr>{% for file in files %}<tr><td>{{ file }}</td><td><a href="/download/{{ file }}">Download</a></td><td><a href="/delete/{{ file }}">Delete</a></td></tr>{% endfor %}</table>
</body>
</html>

3.3 测试记录

运行命令

python3 app.py
或者
nohup python3 app.py > output.txt &

初次执行有报错,需要安装Flask库

 pip install Flask==2.0.3

3.3.1 测试本地向http服务器发送json格式的数据

在本地计算机用curl尝试上传json格式的data

C:\Users\lenovo>curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1","key2":"value2"}' http://121.43.231.**:80/upload_data
Received!

阿里云上的http服务器收到消息,返回

"Received!"。

[root@iZbp1h36cszlkbxbf5g**** httpserver]# python3 app.py* Serving Flask app 'app' (lazy loading)* Environment: productionWARNING: This is a development server. Do not use it in a production deployment.Use a production WSGI server instead.* Debug mode: off* Running on all addresses.WARNING: This is a development server. Do not use it in a production deployment.* Running on http://172.25.37.106:80/ (Press CTRL+C to quit)The upload data is: b"'{key1:value1,key2:value2}'"
117.62.169.192 - - [17/Jul/2023 22:28:57] "POST /upload_data HTTP/1.1" 200 -

3.3.2 测试本地向http服务器上传文件

在地址栏输入网址

http://121.43.231.**/

可以看到

 

 点击“选择文件”后,选择文件再点击Upload,文件便上传至http服务器的upload目录下。

也可以在本地使用命令行上传文件。如果你想上传本地“D:\PIC\POST.png”到http服务器的话,可以使用以下命令:

D:\PIC>curl -F "file=@D:\PIC\POST.png" http://121.43.231.**/upload
File uploaded successfully.

3.3.3测试本地向http服务器下载文件

点击Download下面的"Download",则可以下载文件。

3.3.4 测试HTTP服务区删除文件

点击Delete下面的“Delete”,可以删除文件。

4. 为HTTP服务器设置域名

很久之前,我曾经在AWS购买过一个域名,但是一直没有使用过。

(AWS购买需要国际信用卡,你可以通过阿里云购买,阿里云购买域名显然和AWS差不多,阿里云的首页就有“域名”,点击进去,可以输入想购买的域名,点击购买,紧接着,需要查验你是否实名验证,上传身份证图片使命验证通过后可以购买)

现在可以配置为HTTP服务的DNS解析域名。

配置步骤:

进入AWS官网,完成登录,进入“Route 53 Dashboard”,点击“Hosted zones”,点击属于自己的域名,点击“Create Record”,然后按照下图配置,配置结束点击“save”,稍等片刻,即发现生效了。

 生效后,我们可以通过

C:\Users\harry_zhang>curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1","key2":"value2"}' http://xiao********.com/upload_data
Received!

给HTTP服务器发消息。

也可以通过

http://xiao********.com

访问HTTP服务器的页面。

5.最后

        这是我第一次使用阿里云服务器的记录,供参考。

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

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

相关文章

谷歌眼镜秀出时尚风采:对面的女孩看过来

摘要&#xff1a;在近日举办的纽约时尚周上&#xff0c;让身材火辣的模特带上谷歌的眼镜&#xff0c;行走在T台之上。主打时尚牌&#xff0c;进一步加固谷歌眼镜在大众消费阶层的印象&#xff0c;尤其是女性消费者。谷歌眼镜创始人Sebastian Thrun指出&#xff1a;谷歌眼镜特别…

学生台灯什么牌子好对眼睛好?专业护眼灯的学生台灯分享

据报告统计&#xff0c;2022年我国儿童青少年总体近视率为52.7%&#xff0c;其中6岁儿童为14.3%&#xff0c;小学生为35.6%&#xff0c;初中生为71.1%&#xff0c;高中生为80.5%&#xff0c;这些数据让人不寒而栗&#xff01; 专家表示&#xff0c;导致儿童青少年近视的因素&am…

【UGP VR眼镜排行榜】2018VR眼镜眼镜哪个好?什么VR眼镜值得买?综合推荐十大热品

科技的发展&#xff0c;高科技产品层出不穷&#xff0c;VR眼镜的出现使人们足不出户也能享受到高品质的观影感受。VR(Virtual Reality&#xff09;即虚拟现实&#xff0c;简称VR.虚拟现实头戴显示器设备&#xff0c;简称VR头显VR眼镜.现在&#xff0c;VR眼镜已不是什么稀奇的东…

《谷歌眼镜》新书作者:眼镜需要成为AR的载体吗?

近10年前&#xff0c;谷歌推出了首款AR眼镜Google Glass&#xff0c;尽管这款产品并没有如预期般取得成功&#xff0c;但它为后续AR硬件技术的发展奠定了基础。我们知道&#xff0c;从微软HoloLens开始&#xff0c;AR头显/眼镜产品更侧重于B端应用&#xff0c;面向C端发售的很少…

Karl Guttag:现有Micro LED/LCoS+光波导AR眼镜对比解析

轻量化是未来AR眼镜的发展趋势&#xff0c;为了缩减尺寸&#xff0c;AR眼镜厂商尝试了多种方案&#xff0c;长期来看Micro LED光机在小型化上更有优势&#xff0c;但现阶段LCoS光机的图像表现更好。在CES 2023期间&#xff0c;DigiLens、Lumus、Vuzix、OPPO、Avegant也展出了不…

偏光太阳镜测试图片软件,[专题]真假偏光太阳镜简单、实用辨别方法!

偏光太阳镜主要是通过镜片的平衡排列的结晶体原理&#xff0c;只让与晶体平衡的光波通过&#xff0c;而向其它角度震动的光波会一律被阻挡的方法(如同百叶窗的原理)制作而成。 正是利用这种原理&#xff0c;偏光太阳镜便可以有效地排除和滤除光束中的偏振光&#xff0c;使光线能…

智能眼镜的两种显示方式

to管理员&#xff1a;哪一个是广告&#xff0c;全是广告&#xff01;难不成网友的链接都不能给了&#xff1f;&#xff01;你们的评判标识是什么&#xff1f; 就现有的技术而言&#xff0c;受限于通讯及周边模块、电源的限制&#xff0c;眼镜只适合于作为显示器使用。 眼镜显示…

谷歌眼镜

谷歌眼镜(Google Project Glass)是由谷歌公司于2012年4月发布的一款“拓展现实”眼镜&#xff0c;它具有和智能手机一样的功能&#xff0c;可以通过声音控制拍照&#xff0c;视频通话和辨明方向以及上网冲浪、处理文字信息和电子邮件等。 查看精彩图册 目录 产品简介 发布信息…

微信小程序开发制作 | 小程序开发者工具功能介绍

小程序开发者工具是微信官方提供的用于开发和调试小程序的工具。它支持 Windows 和 Mac 两种操作系统&#xff0c;并提供了许多实用的功能&#xff0c;使得小程序开发者能够快速地开发和调试小程序。 下面是小程序开发者工具的主要功能介绍&#xff1a; 1.编辑器&#xff1a;…

微信里的小程序怎么制作

自小程序普及以来&#xff0c;除了公司企业&#xff0c;很多的个体户商家都会想了解微信里的小程序怎么制作的&#xff0c;毕竟小程序能解决很多经营上的需求。那么就给大家讲解微信里的小程序怎么制作的流程&#xff0c;希望大家对此能有了解。 流程一、制作小程序前准备 我…

微信小程序开发之——制作表格

一 概述 表格样式一表格样式二 二 绘制过程 外层设置display:table&#xff0c;并设置border-collapse表格边框模型表头设置display:table-row&#xff0c;单元格设置为display:table-cell每一行单元格同表头设置 三 示例代码 3.1 table.wxml(布局文件) <view class&qu…

发明了万维网的他,如今却想亲手推翻它

本文转载自 差评 他有个计划&#xff0c;一个推翻现有互联网&#xff0c;重建数字世界的计划。 看到这句话时&#xff0c;相信很多差友和差评君的第一反应一个样&#xff1a;这谁也太狂了吧&#xff1f;几个菜啊&#xff0c;喝成这样&#xff1f; 毕竟&#xff0c;就算是马云…

计算机中文核心投递经历

中文核心投递录用经历 这篇文章主要记录了我在研究生期间从论文投递到录用的一个心酸过程&#xff0c;因为文章质量不是很高&#xff0c;所以投递过程中也是多次被拒稿。接下来介绍一下我的经历&#xff0c;为后来人提供一些经验。 这篇文章我是从2021年9月份开始着手写&#…

计算机专业留学动机信范文,出国留学,如何写好动机信(Motivation Letter)?

一篇好的动机信最重要的是简洁易懂,用最简洁的语言展示申请者最突出的优点。 浙大毕业后在美国(UIUC)和欧洲(KTH, CTH, EPFL, NTNU)留学,PhD。另外由于在之前的工作中也参与系里招生,帮老板评审申请材料,参与系里招生会议。经手的材料主要有以下几种:需要做论文的硕士,…

易水寒 服务器 位置,她彻底在他所在的城市消失了,他开始有些烦躁

封笑笑死了&#xff0c;她彻底在易水寒所在的城市消失了&#xff0c;连同名字身份都成了再也不会属于这个世界的东西。 易水寒开始有些烦躁&#xff0c;罗云若和罗家那些有意无意的提示让他觉得自己的自由和思维正在被束缚&#xff0c;这种感觉是他最厌恶的。 而罗云若似乎也变…

云计算进入全新时代(1)-ielab

一、什么是混合云&#xff1a; 混合云融合了公有云和私有云&#xff0c;是近年来云计算的主要模式和发展方向。我们已经知道私有云主要是面向企业用户&#xff0c;出于安全考虑&#xff0c;企业更愿意将数据存放在私有云中&#xff0c;但是同时又希望可以获得公有云的计算资源…

秋天的第一杯奶茶刷屏互联网,其背后又蕴含着哪些营销逻辑呢?

8 月 7 日&#xff0c;是我国的传统节气——立秋&#xff0c;立秋是凉爽的秋季的开始&#xff0c;在这一节气过后&#xff0c;天气会逐渐变得凉爽。立秋的到来也预示着我们正式从夏季迈入秋季。 在立秋这一天&#xff0c;秋天的第一杯奶茶这个话题可以说是横扫网络&#xff0c…

电视剧中的计算机学霸,电视剧中的九位学霸男神,真希望身边有位颜值又高学习又好的男生...

hello,大家好!今天的你们都开心了吗?都在忙些什么呢?今天要和大家一起聊聊电视剧中的九位学霸男神,想不想自己身边有一位颜值又高学习又好的男生呢! 《致我们暖暖的小时光》 林一 之前的的一部青春校园剧《致我们暖暖的小时光》可谓是赚足了观众的眼球,物理天才顾未易和…

那一刻你在哪里,十年后你想对汶川说什么?

2008年5月12日14时28分04秒&#xff0c; 一个无法被遗忘的时间。 那一刻&#xff0c;地动山摇&#xff0c; 四川汶川8.0级地震&#xff0c; 近7万人丧生&#xff0c;1.8万人失踪&#xff0c;37万余人受伤…… 汶之伤&#xff0c;国之痛。 五月&#xff0c;悲伤常常逆流成河&…

颠覆你的认知,不用开通Plus会员也可以使用ChatGPT的插件功能(兼容3.5)

在看到这篇文章之前&#xff0c;你可能以为只有GPT4.0才能使用插件。但事实上&#xff0c;早就有人基于3.5开发了一套完整的插件体系了&#xff0c;不但可以使用插件&#xff0c;还可以自己开发插件。插件使用的就是JavaScript语法&#xff0c;开发起来可以说是相当简单了。 注…