出自: 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 協議》,轉載必須註明作者和本文連結