全栈开发心得
有次朋友想开家店,想弄一套基于微信的电商平台。想问我有没有门路?然后想了想。单子交给别人怎么都是好几万起步,自己虽然大概知道了一整套建站的理论,但是没有动手实现过。恰好,趁这个机会,动一动手。如果努力点,实现出来,基本上可以自称全栈开发
了吧。
本篇只是个大概。后面再分几篇细分的文章。讲述项目进行过程中遇到的问题以及解决办法。
总结一下积累的知识,先说技术栈
服务器:腾讯vps + 腾讯cos + pm2 + nginx
后端:typescript + express + mongodb + redis
H5:Vue2 + Vuex + webpack4 + VantUI + less
管理后台:Vue2 + Vuex + webpack4 + elementUI + less
服务器相关
购买没啥好说,基本一路傻瓜点下去就行。首次登陆需密码登陆,首次登陆应该先配置ssh,省事,安全
配置ssh
先在本地电脑上生成ssh公钥
ssh-keygen -t rsa
一路回车,公钥生成在~/.ssh
目录下,windows是C:\Users\{用户名}\.ssh
。复制id_rsa.pub
文件的内容
登陆服务器上,切换到 ~/.ssh
目录下,编辑authorized_keys
文件。把本地电脑的公钥字符串粘贴到该文件下即可。
现在已经可以再本地电脑上通过 ssh root@39.156.69.79 登陆机器了。
scp
语法是 scp from to
远程路径的语法是:<账号>@<ip>:<路径>
所以一般的操作是,在本地计算机执行scp,上传或者下载文件。而因为本地计算机无法在公网访问,所以一般不在服务器上执行scp命令。
举例,要上传公钥:
1 | scp ~/.ssh/id_rsd.pub root@39.156.69.79:~/.ssh/local_id_rsd.pub |
那么反过来,下载则是
1 | scp root@39.156.69.79:~/.ssh/id_rsd.pub ~/.ssh/server_id_rsd.pub |
注意:
- 如果已经配置了ssh登陆,则无痛上传下载,否则,每次操作都需要输入密码
- 记得下载命名不能冲突,否则会覆盖源文件
- 直接使用winScp更便捷
修改默认ssh端口
为了增加安全性,最好修改一下ssh的登陆端口,修改方式看简书
添加快捷登陆
再本地电脑上,切换到 ~/.ssh
目录下。新建config
文件。再文件内部加上
Host tencent
HostName 39.156.69.79
User root
IdentityFile ~/.ssh/id_rsa
Port 1234
之后就可以通过ssh tencent
直接登陆服务器了 。
node安装
yum install nodejs -y
默认安装的是6.17.1版本,所以还得升级
npm install n -g
n latest
nginx
nginx配置路径为:/etc/nginx/
如果找不到
nginx -t
会打印初配置路径
为了方便,可以用ln
命令设置软连接,快速定位ln
ln -sfn /etc/nginx/ nginx.ln
这样再当前目录下就有一个nginx.ln的链接到达nginx配置了。
nginx重启
nginx -s reload
我的项目分为3个端。server端、管理后台端与H5端。
server端在项目上知识用pm2启动,然后用nginx隐藏端口
location / {
proxy_pass http://127.0.0.1:4000;
}
而两个前端分别webpack打包,上传到cos,然后再由nginx代理,方法一样
location /admin {
proxy_pass https://app-1258538316.cos.ap-chengdu.myqcloud.com/app/static-admin/dist/index.html;
}
location /h5 {
proxy_pass https://app-1258538316.cos.ap-chengdu.myqcloud.com/app/static/dist/index.html;
}
就可以。
docker
docker切换国内源
新版的 Docker 使用/etc/docker/daemon.json
(Linux) 或者 C:\programdata\docker\config\daemon.json
(Windows) 来配置 Daemon。
请在该配置文件中加入(没有该文件的话,请先建一个):
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
然后重启docker服务systemctl restart docker
(Linux) windows重启电脑吧
Redis
安装redis并且设置密码
docker run --name redis -p 6379:6379 -d redis --requirepass "RedisPasswd"
redis使用
一般作为session的缓存而已。不会单独使用
mongo
centos安装mongo,参照segmentfault并不难
唯一要修改的地方是,创建账号时,role用userAdminAnyDatabase
db.createUser({ user: "root", pwd: "123456", roles: [{ role: "root", db: "admin" }] })
//////////////////////////////以下是docker安装,失败/////////////////////////////////////
docker安装mongodb
docker run -name mongo -p 27019:27019 -d mongo -auth
- 进入mongo 容器
docker exec -it mongo /bin/bash - 添加账户(也可以用客户端操作)
1 | // 进入mongo命令行 |
考虑到数据安全性,万一一不小心删除的mongodb的docker。数据全没了。所以还是本地安装靠谱
mongo连接
实现得并不好,就不记录了。