97人妻精品一区二区三区软件,人妻偷拍在线,插丝袜美女小穴视频,美女午夜福利在线

      • <i id="89dc3"></i>
        當前位置: 首頁 >應用方案 >技術應用 >

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

        Goahead是一種輕量級嵌入式web服務器,全部代碼開源,可以在多種平臺編譯運行,

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

        支持虛擬服務器

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

        下載源路徑如下

        https://gitee.com/mirrors/GoAhead

        goahead在linux下的安裝和簡單使用可以參考以下鏈接

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

        linux環(huán)境下為例

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

        gahead服務器1

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

        gahead服務器2

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

        gahead服務器3

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

        gahead服務器4

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

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

        Handler

        作用

        action

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

        continue

        不進行任何操作的偽處理程序,常用于登陸驗證。

        cgi

        為 CGI 程序提供服務的處理程序

        file

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

        jst

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

        options

        用于提供 HTTP 選項和跟蹤方法的處理程序

        redirect

        處理route重定向的處理程序

        upload

        處理文件上傳的處理程序

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

        1. route uri=/

        可以認為是萬能文件路由,瀏覽器的任何文件訪問,均可以通過此請求到相應的資源文件

        2. route uri=/action handler=action

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

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

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

        cgi請求,常用于調(diào)用CGI子程序,一般來說,cgi-bin只是用于標記請求為cgi,dir=cgi-bin用于標記CGI程序的存儲位置,cgi的編譯及安裝,詳細使用辦法參考鏈接

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

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

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

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

        簡單使用方法參考:

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

        本處不再贅述

        5. Goahead同時提供了簡單的用戶登錄驗證過程

        使用以下路由可以完成表單驗證形式

        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

        其中第一行為登錄前可訪問的公共文件

        第二行用于登錄驗證操作,第三行用于退出登錄操作

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

        基本驗證形式

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

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

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

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

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

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

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

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

        gahead服務器6

        在源碼中使用了auth=form登錄驗證,或者只有uri=/路由時,瀏覽器僅使用IP地址訪問服務器,服務器找不到瀏覽器找不到具體的請求,將會直接進入

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

        函數(shù),重新向瀏覽器的訪問位置

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

        host = websHostUrl ? websHostUrl : wp->ipaddr;

        websHostUrl = NULLhost實際為wp->ipaddr,即瀏覽器所在終端的IP地址,如果要解決此問題,可以在

        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"為服務器ip,實際使用中需要使用系統(tǒng)的接口獲取之后轉(zhuǎn)化為字符串,或者存在公網(wǎng)ip或者域名時(外網(wǎng)訪問),填寫公網(wǎng)ip或者域名

        index.html為默認重定向文件

        gahead服務器7

        gahead服務器8

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


        點擊撥打: 億佰特官網(wǎng) 4000-330-990