色猫咪av在线网址_91精品国产福利在线观看雪梨还会玩转热点_丁香花的视频免费观看_国产手机在线A∨免费视频_十八禁av无码免费网站APP_综合色一区二区亚洲_日韩精品小电影_漂亮人妻熟睡中被公侵犯_全新成人高清无码片_高级厕所偷窥白领美女嘘嘘

當(dāng)前位置: 首頁(yè) >應(yīng)用方案 >技術(shù)應(yīng)用 >

linux下goahead網(wǎng)頁(yè)服務(wù)器的搭建與使用教程

Goahead是一種輕量級(jí)嵌入式web服務(wù)器,全部代碼開(kāi)源,可以在多種平臺(tái)編譯運(yùn)行,

gahead具備以下典型特性(引用自https://www.oschina.net/p/goahead?hmsr=aladdin1e1

支持虛擬服務(wù)器

可使用 SNMP 代理
       支持 SSL v3
       具有搜索引擎
       支持 ASP、JavaScript、CGI、DHTML
       容易移植和系統(tǒng)集成
       可不使用文件系統(tǒng)

下載源路徑如下

https://gitee.com/mirrors/GoAhead

goahead在linux下的安裝和簡(jiǎn)單使用可以參考以下鏈接

https://blog.csdn.net/weihan0208/article/details/118483839

linux環(huán)境下為例

goahead的源碼在簡(jiǎn)易使用,僅僅用于請(qǐng)求文件時(shí),基本無(wú)需修改源代碼,按照流程編譯運(yùn)行即可,比如將網(wǎng)頁(yè)文件(index.html)放在 /var/www/goahead路徑下,服務(wù)器的IP地址為192.168.0.20,綁定80端口

gahead服務(wù)器1

在瀏覽器內(nèi)輸入192.168.0.20/index.html,即可訪問(wèn)成功

gahead服務(wù)器2

一般在大多數(shù)情況下簡(jiǎn)單的網(wǎng)頁(yè)盡可以在本地直接使用瀏覽器打開(kāi),但是當(dāng)網(wǎng)頁(yè)代碼中存在ifreme時(shí),加載子網(wǎng)頁(yè)就會(huì)存在報(bào)錯(cuò),此時(shí)goahead便可以發(fā)揮作用,如下圖

gahead服務(wù)器3

當(dāng)然網(wǎng)頁(yè)可執(zhí)行的功能不僅包括文件請(qǐng)求,還有大量紛繁復(fù)雜的操作,大多數(shù)操作goahead也是支持的,但是需要使用路由文件定義相關(guān)的操作,部分操作需要修改服務(wù)器代碼才可以實(shí)現(xiàn),goahead源碼提供了基本的route.txt文件,路徑為 ./src/route.txt,用于支持基礎(chǔ)訪問(wèn),其內(nèi)容如下

gahead服務(wù)器4

路由文件的基本使用方法可以參鏈接:

https://blog.csdn.net/weixin_44074105/article/details/124930732

Handler

作用

action

用于將URL的請(qǐng)求與C函數(shù)綁定的處理程序

continue

不進(jìn)行任何操作的偽處理程序,常用于登陸驗(yàn)證。

cgi

為 CGI 程序提供服務(wù)的處理程序

file

用于提供網(wǎng)頁(yè)、圖像和靜態(tài)資源的處理程序

jst

為動(dòng)態(tài)內(nèi)容提供 Javascript 模板的處理程序

options

用于提供 HTTP 選項(xiàng)和跟蹤方法的處理程序

redirect

處理route重定向的處理程序

upload

處理文件上傳的處理程序

在源碼文件中提供的例程中

1. route uri=/

可以認(rèn)為是萬(wàn)能文件路由,瀏覽器的任何文件訪問(wèn),均可以通過(guò)此請(qǐng)求到相應(yīng)的資源文件

2. route uri=/action handler=action

Action請(qǐng)求需要在服務(wù)器的源文件中添加對(duì)應(yīng)的action代碼實(shí)現(xiàn),例如用戶登錄,服務(wù)器參數(shù)設(shè)置等操作,均可以用action實(shí)現(xiàn),參考鏈接

https://blog.csdn.net/weihan0208/article/details/118483839

3. route uri=/cgi-bin dir=cgi-bin handler=cgi

cgi請(qǐng)求,常用于調(diào)用CGI子程序,一般來(lái)說(shuō),cgi-bin只是用于標(biāo)記請(qǐng)求為cgi,dir=cgi-bin用于標(biāo)記CGI程序的存儲(chǔ)位置,cgi的編譯及安裝,詳細(xì)使用辦法參考鏈接

https://blog.csdn.net/weixin_40732273/article/details/107835028

4. route uri=/jst extensions=jst handler=jst

Jst實(shí)際是JSP中的(JavaServer? Pages Standard Tag Library),其基本介紹可以參考

https://www.xjx100.cn/news/453296.html?action=onClick

簡(jiǎn)單使用方法參考:

https://blog.csdn.net/weixin_45553150/article/details/116651170

本處不再贅述

5. Goahead同時(shí)提供了簡(jiǎn)單的用戶登錄驗(yàn)證過(guò)程

使用以下路由可以完成表單驗(yàn)證形式

route uri=/pub/

Route uri=/action/login methods=POST handler=action redirect=200@/ redirect=401@/pub/login.html

route uri=/action/logout methods=POST handler=action redirect=200@/pub/login.html

route uri=/ auth=form handler=continue redirect=401@/pub/login.html

其中第一行為登錄前可訪問(wèn)的公共文件

第二行用于登錄驗(yàn)證操作,第三行用于退出登錄操作

第四行為萬(wàn)能路由,可以訪問(wèn)一切文件,但是前提是完成登錄驗(yàn)證,否側(cè)將被重定向只至登錄界面

基本驗(yàn)證形式

route uri=/auth/basic/ auth=basic abilities=manage

route uri=/auth/digest/ auth=digest abilities=manage

基本驗(yàn)證方式較為簡(jiǎn)單,可以參考下列文章中的內(nèi)容

https://blog.csdn.net/weihan0208/article/details/118494270

https://blog.csdn.net/weixin_44074105/article/details/124930732

GOahead的路由文件可以視作一種順序執(zhí)行,逐行匹配的腳本,可訪問(wèn)的資源文件,由根據(jù)不同的method handler redirect auth等操作,可以產(chǎn)生條件執(zhí)行的簡(jiǎn)單邏輯,根據(jù)此思路結(jié)合表單用戶登錄過(guò)程,用戶可以自行修改route文件實(shí)現(xiàn)對(duì)應(yīng)的操作,最終完成整個(gè)服務(wù)器,當(dāng)然,goahead不僅僅只有上邊的幾個(gè)操作,還可以實(shí)現(xiàn)文件下載文件上傳,等操作,感興趣的讀者可以自行查找相關(guān)的資料

本文誕生在項(xiàng)目開(kāi)發(fā)實(shí)踐中,用于某型號(hào)的物聯(lián)網(wǎng)設(shè)備,以實(shí)現(xiàn)參數(shù)配置,在實(shí)際使用中,還發(fā)現(xiàn)如果要實(shí)現(xiàn)直接使用192.168.0.20進(jìn)入網(wǎng)頁(yè)還需要在源碼中添加部分代碼,否則,瀏覽器的訪問(wèn)會(huì)出現(xiàn)以下問(wèn)題

在瀏覽器輸入192.168.0.20,實(shí)際被服務(wù)器重定向到192.168.0.43/index.html(瀏覽器所在電腦的ip),經(jīng)過(guò)一番查找,最終找到問(wèn)題所在。

gahead服務(wù)器6

在源碼中使用了auth=form登錄驗(yàn)證,或者只有uri=/路由時(shí),瀏覽器僅使用IP地址訪問(wèn)服務(wù)器,服務(wù)器找不到瀏覽器找不到具體的請(qǐng)求,將會(huì)直接進(jìn)入

void websRedirect(Webs *wp, cchar *uri)(位于http.c文件)

函數(shù),重新向?yàn)g覽器的訪問(wèn)位置

實(shí)際上由于未更改任何源碼,所以代碼中

host = websHostUrl ? websHostUrl : wp->ipaddr;

websHostUrl = NULL,host實(shí)際為wp->ipaddr,即瀏覽器所在終端的IP地址,如果要解決此問(wèn)題,可以在

goahead.c文件中

函數(shù):MAIN(goahead, int argc, char **argv, char **envp)

中添加如下內(nèi)容

   websSetHostUrl("192.168.0.20");

websSetIndex("index.html");

"192.168.0.20"為服務(wù)器ip,實(shí)際使用中需要使用系統(tǒng)的接口獲取之后轉(zhuǎn)化為字符串,或者存在公網(wǎng)ip或者域名時(shí)(外網(wǎng)訪問(wèn)),填寫(xiě)公網(wǎng)ip或者域名

index.html為默認(rèn)重定向文件

gahead服務(wù)器7

gahead服務(wù)器8

今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!


4000-330-990

https://www.wjx.cn/jq/84863372.aspx