rust-admin 對 Rust 的第一印象

dreamfine發表於2020-05-29

出自: www.zhihu.com/column/rust-shen
這是一個rust寫的開源後臺管理專案。雖然後臺管理是個低頻應用,不過上一個PHP後臺管理程式,我可領教過了。

那是一個後臺統計頁面,要查詢很多表,我已經是儘量優化了,大部分查詢放到儲存過程中了。

可是有時伺服器資源緊張時,管理員死活打不開後臺,後來不得不把那個統計頁面簡化了。

所以Rust能幫我做好後臺這塊兒,我一點也不覺得多餘。

專案地址:https://gitee.com/houhanting/rust-admin.git

安裝有教程,不細說了。簡單說說我遇到的問題。

資料庫用的是mariadb, 放在Docker中。建立庫,匯入SQL指令碼,正常工作,沒什麼可說的。

nginx ,我不想在我的2013年出廠的macbook pro中安裝。因為它已經每天很累了,風扇就沒停止過轉動。

不過macOS沒感覺卡頓,這點apple做的很不錯。

又扯遠了。我先是在docker中執行nginx。不過這可能意味著,我得把vscode編譯的程式碼同步到 nginx 所在的docker容器中.

這樣做除錯可能會比較麻煩,我試了一下沒成功,就放棄了。

可能理想的情況是,nginx容器能呼叫外部工作的地址和埠。似乎沒理由不行。可是我還不會。先放棄了。

直接在macOS中安裝nginx吧。該放就放,樹敵太多累死人。

編輯nginx的配置檔案:

nano /usr/local/etc/nginx/nginx.conf 

檔案是這樣的:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location /static/ {  #請
        root /Users/your_mac/Rust/rust-admin/public; #請將pulic目錄設定此處
    }

    location / { 
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        proxy_pass http://127.0.0.1:8081/; #後臺rust-admin的監聽地址及埠
        proxy_set_header    Host             $host;#保留代理之前的host
        proxy_set_header    X-Real-IP        $remote_addr;  #保留代理之前的真實客戶端ip
        proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header    HTTP_X_FORWARDED_FOR $remote_addr;  #在多級代理的情況下,記錄每次代理之前的客戶端真實ip
        proxy_redirect      default; #指定修改被代理伺服器返回的響應頭中的location頭域跟refresh頭域數值
    }
    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

目錄設定對很重要,一開始沒搞好,出來頁面沒樣式,醜的想哭,走半路就403了。

再說說專案編譯,第一次挺長時間,用了13分鐘才完成,再做小改動就快很多。

也沒什麼特別的障礙。Rust的安裝配置資料網 上多的是。不過關於rust-analyzer的安裝使用。倒是值得一提。、

放這裡吧:rvscode擴充套件 - rust-analyzer

再扯二句:

這個後臺用的web框架是Actix-web ,查了一下,不錯,速度方面,連續霸榜.

前端框架是x-admin,在php後臺中見過,也很漂亮。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章