目录
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