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

这篇具有很好参考价值的文章主要介绍了申请阿里云服务器并搭建公网可支持数据上传的HTTP服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 前言

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

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

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

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

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

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

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

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

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

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

2. 申请阿里云服务器

2.1 登录注册

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

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

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

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

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

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

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

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

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

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

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

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

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

[root@iZbp1h36cszlkbxbf5gqeeZ ~]# ifconfig
bond0: flags=5123<UP,BROADCAST,MASTER,MULTICAST>  mtu 1500
        ether 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 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ether 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 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.37.106  netmask 255.255.240.0  broadcast 172.25.47.255
        inet6 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 0
        TX packets 2692  bytes 411305 (401.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::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 0
        TX 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远程登录设置的密码”登录了。

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

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 os

app = 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.filename
    save_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 files


if __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: production
   WARNING: 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.**/

可以看到

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

 点击“选择文件”后,选择文件再点击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”,稍等片刻,即发现生效了。

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

 生效后,我们可以通过

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.最后

        这是我第一次使用阿里云服务器的记录,供参考。文章来源地址https://www.toymoban.com/news/detail-566280.html

到了这里,关于申请阿里云服务器并搭建公网可支持数据上传的HTTP服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 阿里云学生服务器申请攻略(先学生认证然后完成实验任务)

    阿里云学生服务器免费申请,之前是云翼计划学生服务器9元/月,现在是高校计划,学生服务器可以免费申请,先完成学生认证即可免费领取一台云服务器ECS,配置为2核2G、1M带宽、40G系统盘,在云服务器ECS实例过期之前,完成实验与认证任务,还可以免费续费6个月。阿里云

    2024年02月10日
    浏览(20)
  • 阿里云服务器IP地址查询方法(公网IP和私网IP)

    阿里云服务器IP地址在哪查看?在云服务器ECS管理控制台即可查看,阿里云服务器IP地址包括公网IP和私有IP地址,阿里云百科分享阿里云服务器IP地址查询方法: 目录 阿里云服务器IP地址查询 1、登录到阿里云服务器ECS管理控制台 2、在“实例与镜像”–“实例”中,找到当前

    2024年02月04日
    浏览(23)
  • 【公网远程手机Android服务器】安卓Termux搭建Web服务器

    目录 概述 1.搭建apache 2.安装cpolar内网穿透 3.公网访问配置 4.固定公网地址 5.添加站点 Termux是一个Android终端仿真应用程序,用于在 Android 手机上搭建一个完整的Linux 环境,能够实现Linux下的许多基本操作,不需要root权限Termux就可以正常运行。 Apache是一个开源网页服务器软件,

    2024年02月09日
    浏览(22)
  • 搭建frp+OpenVPN实现公网服务器对内网服务器的访问

    1.1实验需求 本实验需求一台公网服务器,两台内网服务器 公网服务器:作为frp服务端以及openvpn客户端 第一台内网服务器:作为frp客户端以及openvpn服务端 第二台内网服务器:需进行openvpn客户端配置(测试用) 1.2配置yum源 2.1服务端配置(公网服务器) 下载并解压frp数据包

    2024年02月04日
    浏览(19)
  • 安卓Termux搭建web服务器【公网远程手机Android服务器】

    转载自cpolar极点云的文章:【手机建站】Termux+Cpolar内网穿透,搭建可以被外网访问的网站 Termux是一个Android终端仿真应用程序,用于在 Android 手机上搭建一个完整的Linux 环境,能够实现Linux下的许多基本操作,不需要root权限Termux就可以正常运行。 Apache是一个开源网页服务器软

    2024年02月06日
    浏览(21)
  • 阿里云申请免费SSL证书的两种验证方式及配置服务器Tomcat升级HTTPS协议

    通用教程,其他服务商的免费 SSL 证书也差不多是这个流程。(至少腾讯云的操作步骤和本文是一致,嘻嘻!) 首先在阿里云上创建并申请 SSL 证书,之后选择 DNS 验证的方式,一种是手动配置解析地址进行验证,另一种是在服务器上放置一个验证文件进行验证。 手动 DNS 验证

    2024年02月10日
    浏览(23)
  • 如何搭建服务器调试2G/3G/4G模块通信/公网TCP服务器调试

            在调试2G/3G/4G模块网络通信时,个人电脑无法直接进行调试,因为个人电脑连接网络属于局域网,而2G/3G/4G等GSM网络属于广域网,也就是公网,所以如何调试2G/3G/4G网络需要进行内网穿透。         方案一:使用安信可透传云         安信可透传云解决方案是指

    2024年01月21日
    浏览(28)
  • 本地电脑搭建SFTP服务器,并实现公网访问

    1.1 下载 freesshd 服务器软件 下载地址:freeSSHd and freeFTPd 选择freeFTPD.exe下载 下载后,点击安装 安装之后,它会提示是否启动后台服务,Yes 安装后,点击开始菜单– freeFTPd, 注意 :这里要点击鼠标右键, 以管理员权限 打开freeFTPd,如果以普通用户打开freeFTPd, 将无法保存配置

    2024年02月08日
    浏览(31)
  • 【搭建服务器】Win10 IIS搭建webdav服务以及公网访问教程 - 挂载webdav

    自己用Windows Server搭建了家用NAS主机,WebDAV的文件共享方式当然也是必不可少的。 本文使用的是WIN10 专业版。 1.1 打开控制面板,查看方式改为“类别”,进入“程序”,“启用或关闭Windows功能” 1.2 在Internet Information Services(IIS)中勾选“IIS管理控制台”、“Windows身份验证

    2024年02月06日
    浏览(39)
  • 2核4g服务器能支持多少人访问?阿里云2核4g服务器在线人数

    阿里云2核4G服务器多少钱一年?2核4G配置1个月多少钱?2核4G服务器30元3个月、轻量应用服务器2核4G4M带宽165元一年、企业用户2核4G5M带宽199元一年 。可以在阿里云CLUB中心查看 aliyun.club 当前最新2核4G服务器精准报价、优惠券和活动信息。 阿里云官方2核4G服务器活动 https://t

    2024年04月23日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包