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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!