rust-admin 对 Rust 的第一印象
出自: 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 协议》,转载必须注明作者和本文链接