Flexus 云服務(wù)器 X 實(shí)例是華為云推出的一款高性能、高可靠性的云服務(wù)器產(chǎn)品,它專為滿足企業(yè)級(jí)用戶對(duì)計(jì)算資源的嚴(yán)格要求而設(shè)計(jì)。本篇文章通過(guò)部署輕量級(jí) http 服務(wù)器Tinyhttpd來(lái)體驗(yàn)Flexus 云服務(wù)器 X 實(shí)例。
一、云服務(wù)器 Flexus
首先,進(jìn)入官網(wǎng)購(gòu)買Flexus 云服務(wù)器 X 實(shí)例,點(diǎn)擊這里購(gòu)買,點(diǎn)擊購(gòu)買界面如下所示。
其中,CPU 和內(nèi)存可以自定義,如上圖所示。
(1)可以開(kāi)啟性能模式,能夠支付額外算力費(fèi)用,享受極致穩(wěn)定性能 SLA 保障;
(2)鏡像中有多種鏡像可以選擇,每種鏡像有不同的版本可供選擇;
(3)帶寬可以根據(jù)自己的需要選擇,同時(shí)支持直接輸入。
完成配置后,點(diǎn)擊下一步:確認(rèn)配置,如下所示。
選擇協(xié)議許可后點(diǎn)擊購(gòu)買即可。
二、Tinyhttpd 介紹
Tinyhttpd 是一個(gè)簡(jiǎn)易的 http 服務(wù)器,支持 CGI。代碼量少,非常容易閱讀,十分適合網(wǎng)絡(luò)編程初學(xué)者學(xué)習(xí)的項(xiàng)目。麻雀雖小,五臟俱全。在 Tinyhttpd 中可以學(xué)到 linux 上進(jìn)程的創(chuàng)建,管道的使用。linux 下 socket 編程基本方法和 http 協(xié)議的最基本結(jié)構(gòu)。
Github 倉(cāng)庫(kù)如下所示,點(diǎn)這里進(jìn)入~
如上所示,tinyhttpd 項(xiàng)目核心代碼在 httpd.c 中。
三、部署 Tinyhttpd
華為云服務(wù)器自帶 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,用于查看目錄結(jié)構(gòu),如下所示。
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#
下面通過(guò) tree 查看 tinyhttpd 項(xiàng)目的目錄層級(jí)。
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 項(xiàng)目是一個(gè)非常精致的項(xiàng)目,雖然功能不多,但是該有的功能都有。
四、運(yùn)行
4.1 編譯項(xiàng)目
進(jìn)入 tinyhttpd 目錄,執(zhí)行 make 命令編譯項(xiàng)目代碼,如下所示。
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]
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 *’
socklen_t *__restrict __len) __THROW;
httpd.c: In function ‘main’:
httpd.c:591:24: warning: pointer targets in passing argument 3 of ‘a(chǎn)ccept’ differ in signedness [-Wpointer-sign] &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 *’
socklen_t *__restrict __addr_len);
編譯完成,當(dāng)前目錄下存在可執(zhí)行文件 httpd,如下所示。
root@flexusx-c1f3:~/tinyhttpd# ls
example htdocs httpd httpd.c Makefile README simpleclient.c
root@flexusx-c1f3:~/tinyhttpd#
4.2 運(yùn)行項(xiàng)目
直接執(zhí)行 httpd,如下所示。
root@flexusx-c1f3:~/tinyhttpd# ./httpd
httpd running on port 50547
這里需要將 50547 端口加入到安全規(guī)則中,如下所示。
然后,訪問(wèn)http://服務(wù)器 IP 地址:50547即可,如下所示。
五、總結(jié)
Flexus 云服務(wù)器 X 實(shí)例是一個(gè)強(qiáng)大、靈活且經(jīng)濟(jì)高效的云服務(wù)解決方案。華為云的 Flexus 云服務(wù)器 X 實(shí)例以其卓越的性能、高度的靈活性和顯著的成本效益,為企業(yè)提供了一個(gè)全面而高效的云計(jì)算解決方案。部署輕量級(jí) Web 服務(wù)器 Tinyhttpd 至 Flexus 云服務(wù)器 X 實(shí)例 的過(guò)程異常便捷,這得益于華為云提供的直觀管理界面和工具。用戶可以輕松地通過(guò)幾個(gè)簡(jiǎn)單的步驟完成部署,無(wú)需深入的系統(tǒng)配置知識(shí)。此外,更新軟件源的速度也得到了顯著提升,這不僅確保了服務(wù)器能夠快速獲取最新軟件更新,也提高了整體的系統(tǒng)穩(wěn)定性和安全性。
審核編輯 黃宇
-
云服務(wù)器
+關(guān)注
關(guān)注
0文章
662瀏覽量
13380 -
華為云
+關(guān)注
關(guān)注
3文章
2605瀏覽量
17475
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論