首页 > 其他分享 >828华为云征文 | 云服务器Flexus X实例:轻量级http服务器 Tinyhttpd 部署

828华为云征文 | 云服务器Flexus X实例:轻量级http服务器 Tinyhttpd 部署

时间:2024-09-17 11:22:45浏览次数:10  
标签:httpd Tinyhttpd tree 服务器 tinyhttpd root c1f3 轻量级

目录

一、云服务器 Flexus

二、Tinyhttpd 介绍

三、部署 Tinyhttpd

四、运行

4.1 编译项目

4.2 运行项目

五、总结


Flexus云服务器X实例 是华为云推出的一款高性能、高可靠性的云服务器产品,它专为满足企业级用户对计算资源的严格要求而设计。本篇文章通过部署 轻量级http服务器 Tinyhttpd 来体验 Flexus云服务器X实例

一、云服务器 Flexus

首先,进入官网购买 Flexus云服务器X实例,点击这里购买,点击购买界面如下所示。

其中,CPU和内存可以自定义,如上图所示。

(1)可以开启性能模式,能够支付额外算力费用,享受极致稳定性能SLA保障;

(2)镜像中有多种镜像可以选择,每种镜像有不同的版本可供选择;

(3)带宽可以根据自己的需要选择,同时支持直接输入。

完成配置后,点击下一步:确认配置,如下所示。

选择协议许可后点击购买即可。

二、Tinyhttpd 介绍

 Tinyhttpd 是一个简易的 http 服务器,支持CGI。代码量少,非常容易阅读,十分适合网络编程初学者学习的项目。麻雀虽小,五脏俱全。在 Tinyhttpd 中可以学到 linux 上进程的创建,管道的使用。linux 下 socket 编程基本方法和http 协议的最基本结构。

Github 仓库如下所示,点这里进入~

如上所示,tinyhttpd 项目核心代码在 httpd.c 中。

三、部署 Tinyhttpd

华为云服务器自带 Git,

root@flexusx-c1f3:~# git clone https://github.com/cbsheng/tinyhttpd.git
Cloning into 'tinyhttpd'...
remote: Enumerating objects: 76, done.
remote: Total 76 (delta 0), reused 0 (delta 0), pack-reused 76 (from 1)
Unpacking objects: 100% (76/76), 21.13 KiB | 92.00 KiB/s, done.
root@flexusx-c1f3:~# ls
tinyhttpd
root@flexusx-c1f3:~#

安装软件包 tree,用于查看目录结构,如下所示。

root@flexusx-c1f3:~/tinyhttpd# apt install tree
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  tree
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 43.0 kB of archives.
After this operation, 115 kB of additional disk space will be used.
Get:1 http://repo.huaweicloud.com/ubuntu focal/universe amd64 tree amd64 1.8.0-1 [43.0 kB]
Fetched 43.0 kB in 0s (1,003 kB/s)
Selecting previously unselected package tree.
(Reading database ... 116710 files and directories currently installed.)
Preparing to unpack .../tree_1.8.0-1_amd64.deb ...
Unpacking tree (1.8.0-1) ...
Setting up tree (1.8.0-1) ...
Processing triggers for man-db (2.9.1-1) ...
root@flexusx-c1f3:~/tinyhttpd#

下面通过 tree 查看  tinyhttpd 项目的目录层级。

root@flexusx-c1f3:~/tinyhttpd# tree .
.
├── example
│   ├── echoclient.cpp
│   ├── echoserver.cpp
│   ├── README.md
│   ├── UDPclient.cpp
│   └── UDPserver.cpp
├── htdocs
│   ├── check.cgi
│   ├── color.cgi
│   ├── index.html
│   └── README
├── httpd.c
├── Makefile
├── README
└── simpleclient.c

2 directories, 13 files
root@flexusx-c1f3:~/tinyhttpd#

如上所示,tinyhttpd 项目是一个非常精致的项目,虽然功能不多,但是该有的功能都有。

四、运行

4.1 编译项目

进入 tinyhttpd 目录,执行 make 命令编译项目代码,如下所示。

root@flexusx-c1f3:~/tinyhttpd# make
gcc -W -Wall -lpthread -o httpd httpd.c
httpd.c: In function ‘startup’:
httpd.c:533:52: warning: pointer targets in passing argument 3 of ‘getsockname’ differ in signedness [-Wpointer-sign]
  533 |   if (getsockname(httpd, (struct sockaddr *)&name, &namelen) == -1)
      |                                                    ^~~~~~~~
      |                                                    |
      |                                                    int *
In file included from httpd.c:23:
/usr/include/x86_64-linux-gnu/sys/socket.h:117:26: note: expected ‘socklen_t * restrict’ {aka ‘unsigned int * restrict’} but argument is of type ‘int *’
  117 |    socklen_t *__restrict __len) __THROW;
      |    ~~~~~~~~~~~~~~~~~~~~~~^~~~~
httpd.c: In function ‘main’:
httpd.c:591:24: warning: pointer targets in passing argument 3 of ‘accept’ differ in signedness [-Wpointer-sign]
  591 |                        &client_name_len);
      |                        ^~~~~~~~~~~~~~~~
      |                        |
      |                        int *
In file included from httpd.c:23:
/usr/include/x86_64-linux-gnu/sys/socket.h:233:28: note: expected ‘socklen_t * restrict’ {aka ‘unsigned int * restrict’} but argument is of type ‘int *’
  233 |      socklen_t *__restrict __addr_len);
      |      ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~

编译完成,当前目录下存在可执行文件 httpd,如下所示。

root@flexusx-c1f3:~/tinyhttpd# ls
example  htdocs  httpd  httpd.c  Makefile  README  simpleclient.c
root@flexusx-c1f3:~/tinyhttpd# 

4.2 运行项目

直接执行 httpd,如下所示。

root@flexusx-c1f3:~/tinyhttpd# ./httpd 
httpd running on port 50547

这里需要将 50547 端口加入到安全规则中,如下所示。

 然后,访问  http://服务器IP地址:50547 即可,如下所示。

五、总结

Flexus云服务器X实例是一个强大、灵活且经济高效的云服务解决方案。华为云的Flexus云服务器X实例以其卓越的性能、高度的灵活性和显著的成本效益,为企业提供了一个全面而高效的云计算解决方案。部署轻量级Web服务器 Tinyhttpd 至 Flexus云服务器X实例 的过程异常便捷,这得益于华为云提供的直观管理界面和工具。用户可以轻松地通过几个简单的步骤完成部署,无需深入的系统配置知识。此外,更新软件源的速度也得到了显著提升,这不仅确保了服务器能够快速获取最新软件更新,也提高了整体的系统稳定性和安全性。

标签:httpd,Tinyhttpd,tree,服务器,tinyhttpd,root,c1f3,轻量级
From: https://blog.csdn.net/weixin_40569991/article/details/142304637

相关文章

  • 828 华为云征文|华为 Flexus 云服务器搭建 PicGo 图床
    一、引言在这个数字化的时代,高效地管理和存储图片资源变得至关重要。2024年9月14日,我将利用华为Flexus云服务器搭建一个PicGo图床,开启一场便捷的图片管理之旅。二、华为Flexus云服务器:稳定的基石华为Flexus云服务器以其卓越的性能和高度的稳定性脱颖而出。......
  • 超轻量级、支持插件的 .NET 网络通信框架
    超轻量级、支持插件的.NET网络通信框架在当今高度互联的世界中,高效、可靠的网络通信是构建各种应用程序的关键。无论是开发Web服务、实时通信应用,还是物联网设备,都需要一个强大且灵活的网络通信框架来支撑。然而,传统的网络通信框架往往过于臃肿,难以满足现代应用程序对性能和灵......
  • 探索轻量级语言模型 GPT-4O-mini 的无限可能
    随着人工智能技术的日益发展,语言模型正逐渐成为人们日常生活和工作中不可或缺的一部分。其中,GPT-4O-mini作为一个轻量级大模型,以其强大的功能和易用性吸引了众多关注。本文将带您了解GPT-4O-mini的出色表现、应用场景以及如何免费使用这一资源。GPT-4O-mini:继承GPT-4......
  • 关于ANSYS Fluent在曙光&宁畅&中科可控R6250A0 AMD平台服务器上的硬件性能优化建议
    一、问题描述某客户反馈fluent双节点比友商节点慢,差距约17%左右,经工程师现场调优未达到优化目标。1.1软、硬件配置:cpu:AMD95543.1G64C*2  内存:16G*32 bios固件版本:SDH2043010系统:rhel8.9Fluent工具版本:22.10二、问题处理ApplicationProfileConfiguration......
  • 统信服务器操作系统【d版字符系统升级到dde图形化】配置方法
    统信服务器操作系统d版本上由字符系统升级到dde桌面系统的过程文章目录一、准备环境二、功能描述安装步骤1.lightdm安装2.dde安装一、准备环境适用版本:■UOS服务器操作系统d版适用架构:■ARM64、AMD64、MIPS64网络:连接互联网情况下进行二、功能描述......
  • 9月京东云云服务器CVM价格配置表汇总-金秋上云!
    轻量云主机是面向中小企业、开发者打造的预装精选软件、开箱即用的主机产品,快速搭建网站、电商、企业低代码工具箱,云盘、共享文档、知识库、开发测试环境等,相对普通云主机,按套餐购买更优惠、控制台可视化管理,运维更简单,提供更便捷上云体验。轻量云主机这个专区是本次活动的主......
  • Linux查看服务器日志
    一、tail这个是我最常用的一种查看方式用法如下:tail-n10test.log查询日志尾部最后10行的日志;tail-n+10test.log查询10行之后的所有日志;tail-fn10test.log循环实时查看最后1000行记录(最常用的)一般还会配合着grep用,(实时抓包)例如:tai......
  • Ubuntu搭建vscode服务器
    在自己的阿里服务器上安装vscode-server,需要注意的要开启服务器的端口.在GitHub官网下载最新版本的code-server#下载地址#https://github.com/coder/code-server/releaseswgethttps://github.com/coder/code-server/releases/download/v4.92.2/code-server-4.92.2-lin......
  • 十四,在Spring Boot当中对应“ Tomcat 服务器的相关配置”和“服务器的切换”的详细说
    十四,在SpringBoot当中对应“Tomcat服务器的相关配置”和“服务器的切换”的详细说明文章目录十四,在SpringBoot当中对应“Tomcat服务器的相关配置”和“服务器的切换”的详细说明1.基本介绍2.准备工作:3.内置Tomcat的配置3.1第一种方式:通过application.yaml......
  • 利用ssrf获取云服务器元数据
    什么是metadata:ECS实例元数据是指实例ID、VPC信息、网卡信息等实例属性信息,支持在ECS实例内部通过访问元数据服务(MetadataService)获取。通过该获取方式,您无需登录控制台或调用API,在实例内部即可访问实例信息,可以更便捷、安全地配置或管理正在运行的实例或实例上的程序。例如,......