node,到資料庫,到前端,邊學邊做,終於是搞出來了。
之所以做的這麼慢是怕所學的知識不紮實,所以看完node,看koa,看完koa看egg,因為egg是最新的庫,而且最近很火,所以就用egg.js了。
然後惡補linux的命令,發現資料庫的sql語句非常看不懂,於是就惡補mysql,又看了mongodb,最後決定用mongodb,因為語法簡直和js一樣。
前端使用的react,想法很簡單,因為工作中用的就是vue,已經很熟了,想再學學react,redux,學完redux以後對狀態管用有了新的認識,感覺之前用的vuex簡直就是模稜兩可,
部署伺服器讓我對linux命令的系統神祕感淡化了很多,其實只是入門的話,簡單的部署,安裝個nginx,git什麼的沒有那麼難,對於我這個非專業運維,完全夠用了。
egg.js
mongodb+mongoose
react+react-router-dom+redux
ssh root@你的IP地址複製程式碼
部署前端程式碼我用的Xshell5,用法很簡單。
後端程式碼用的git push 再在伺服器上拉取。
root賬號進行操作,總會給各個人員相應的賬號
adduser username複製程式碼
gpasswd -a username sudo複製程式碼
cat檢視檔案
cat /etc/sudoers(這個檔案是許可權的配置檔案)複製程式碼
cd到這個資料夾,開啟檔案
vi sudoers複製程式碼
# User privilege specification
root ALL=(ALL:ALL) ALL
username ALL=(ALL:ALL) ALL (在這裡新增)
複製程式碼
ssh username@39.106.133.41複製程式碼
22埠改為別的
本地生成公鑰和私鑰
ssh-keygen --help
cd ~/.ssh
ssh-keygen -t rsa -b 4096複製程式碼
把本地的公鑰上傳到伺服器授權檔案中
vi ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sudo service ssh restart複製程式碼
vi /etc/ssh/sshd_configPort 2222 (在這裡修改埠)
AllowUsers usernamePermitRootLogin yes (允許root賬號登陸,可以改為no)
PasswordAuthentication yes (允許賬號密碼登陸,可以改為no)複製程式碼
ssh -p 2222 username@你的IP複製程式碼
sudo apt-get update複製程式碼
wget curl git
sudo apt-get install wget curl git
複製程式碼
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash複製程式碼
source /root/.bashrc複製程式碼
nvm install node複製程式碼
node -v
npm -v
複製程式碼
安裝
cnpm(用cnpm用慣了,感覺npm下載太慢了)
npm i cnpm -g複製程式碼
列出子檔案
ls複製程式碼
-l是檢視時間的
ls -al (檢視隱藏問價以及列出最後編輯時間)複製程式碼
vi編輯檔案
首先要按一下i進入編輯模式
許可權問題在命令前面加上sudo就好
:q //不儲存檔案退出
:q! //不儲存檔案強制退出
:wq //儲存檔案並退出
:wq! //強制儲存檔案並退出
複製程式碼
ls -a可以檢視到未編輯完的檔案,刪除 rm 檔名 rm -rf慎用(r遞迴f強制刪除)
mv移動檔案或者重新命名
複製程式碼
pm2 start app.js --name 'username' //起個別名複製程式碼
pm2 delete username複製程式碼
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
ssh-keygen -R 172.16.152.209複製程式碼
Host 39.106.133.41 found: line 3複製程式碼
Nginx是一個高效能的HTTP和反向代理伺服器,也可以新建埠
apt-get install nginx複製程式碼
service nginx configtest複製程式碼
nginx配置檔案全在/etc/nginx下
cat nginx.conf複製程式碼
/etc/nginx/sites-enabled複製程式碼
upstream web{
server 39.96.114.57:3000;
}
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html; // 檔案存放位置
index index.html index.htm; //檔案優先順序
location / {
proxy_pass http://web;
}
}
複製程式碼
nginx 新增埠
server {
listen 8080;
server_name 39.106.133.41;
root /usr/share/nginx/blog; (這裡是新建的資料夾)
index index.html index.htm;
}複製程式碼
upstream webserver{
server 39.106.133.41:8080;
server 39.106.133.41:8090;
}
server {
listen 80;
server_name 39.106.133.41;
location / {
proxy_pass http://webserver;
}
}複製程式碼
nginx命令
名稱 | 命令 |
啟動nginx | nginx -c /etc/nginx/nginx.conf |
關閉 nginx | nginx -s stop |
重讀配置檔案 | nginx -s reload kill -HUP nginx |
常用命令 | service nginx {start|stop|status|restart|reload|configtest} |
mongodb
wget http://.../mongodb.tgz複製程式碼
data資料夾和log資料夾放在了var中
mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork複製程式碼
react或者vue專案,打包上傳到相應的nginx裡面
egg的話可以用git,就像平時上傳程式碼一樣,再cnpm i安裝依賴
egg官方文件寫的很明白,有自帶的進城守護。
npm start複製程式碼
npm stop複製程式碼