服務(wù)器:走向全棧開(kāi)發(fā)的第一步
現(xiàn)在前端腳手架和框架語(yǔ)言給前端開(kāi)發(fā)者帶來(lái)更多的便利,在開(kāi)發(fā)之余可能更想去了解一些開(kāi)發(fā)的知識(shí),而對(duì)于前端開(kāi)發(fā),熟悉Node.js以及后端的一些數(shù)據(jù)庫(kù)等會(huì)是一些比較容易上手的方式。擁有一臺(tái)服務(wù)器是一件很酷的事情,所以分享一些常用的服務(wù)器軟件的安裝,以下的服務(wù)器默認(rèn)是CentOS系統(tǒng)。
開(kāi)發(fā)必備
Node.js
前端接觸最多的后臺(tái)語(yǔ)言當(dāng)然是Node.js了,所以在服務(wù)器上需要安裝Node.js。在正常的情況下官方會(huì)建議我們使用源碼去編譯安裝,但是源碼安裝的話后續(xù)想要升級(jí)或者更改版本就需要重新編譯,所以我們使用Node.js的版本管理神器nvm。
安裝 nvm 很簡(jiǎn)單使用安裝腳本
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
或者
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
安裝完成后可以斷開(kāi)服務(wù)器連接,重新登錄上就可以了,如果不想重新登錄也是可以的,在根目錄下執(zhí)行
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
就可以了,然后我們可以使用nvm安裝任一版本的 Node.js
# 顯示 lts 版本的 Node.js
nvm ls-remote --lts
# 安裝 Erbium 版本的 Node.js
nvm install --lts=Erbium
# 或者安裝最新版本
nvm install stable
安裝完成可以查看安裝的 Node.js版本
node --version
> v14.5.0
如果在下次登錄服務(wù)器的時(shí)候顯示 nvm報(bào)錯(cuò)如下
N/A: version "N/A -> N/A" is not yet installed.
是由于nvm默認(rèn)的Node.js版本未指定,所以我們需要指定默認(rèn)的Node.js版本
# nvm alias default [想要指定的默認(rèn)版本]
nvm alias default node
Yarn
yarn是新一代的Node.js包管理工具,它可以緩存下載的每一個(gè)包,它還能并行化操作以最大化資源利用率,安裝速度之快前所未有。
安裝yarn很簡(jiǎn)單,首先添加源地址
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
如果沒(méi)有安裝Node.js,需要先安裝Node.js
curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -
然后執(zhí)行安裝的命令就可以了
sudo yum install yarn
## OR ##
sudo dnf install yarn
如果想要查看其它的安裝方式,可以查看官網(wǎng)
Git
自從GitHub被微軟收購(gòu)以后,開(kāi)放了個(gè)人私有庫(kù)以及持續(xù)集成插件,現(xiàn)在不會(huì)使用Git就有點(diǎn)不好意思說(shuō)出口了哈哈
安裝 Git,之前我也是通過(guò)源代碼模式來(lái)編譯安裝的,后來(lái)發(fā)現(xiàn)可以使用rpm包來(lái)安裝,并且可以隨時(shí)升級(jí)和刪除,所以我推薦使用包管理來(lái)安裝。
首先就是添加repo源
yum install -y http://opensource.wandisco.com/centos/7/git/x86_64/wandisco-git-release-7-2.noarch.rpm
添加之后就可以在/etc/yum.repos.d/wandisco-git.repo看到安裝的git源,然后執(zhí)行安裝
yum install git -y
查看安裝的版本
git --version
更新git版本
yum upgrade git
MongoDB
作為后臺(tái)開(kāi)發(fā),mongodb自然是少不了的,在現(xiàn)在數(shù)據(jù)結(jié)構(gòu)多樣化,NoSQL能夠大大方便數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì)和存儲(chǔ)
首先添加mongodb源
vim /etc/yum.repos.d/mongodb-org-3.6.repo
配置yum源內(nèi)容
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
安裝
sudo yum install -y mongodb-org
啟動(dòng)mongodb,默認(rèn)的配置文件在/etc/mongod.conf,數(shù)據(jù)存儲(chǔ)位置在/var/run/mongodb,如果有其他需求可以更改數(shù)據(jù)庫(kù)位置
systemctl start mongod
啟動(dòng)成功我們就可以使用mongo來(lái)連接到數(shù)據(jù)庫(kù)
Mariadb
mariadb是mysql的開(kāi)源替代版本,使用方式和mysql是一樣的
-
新建
Mariadb.repo源文件vim /etc/yum.repos.d/Mariadb.repo -
寫(xiě)入內(nèi)容
name = MariaDB baseurl = http://yum.mariadb.org/10.4/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 -
安裝
yum -y install MariaDB-server MariaDB-client -
啟動(dòng)
# 啟動(dòng) systemctl start mariadb # 設(shè)置開(kāi)機(jī)啟動(dòng) systemctl enable mariadb # 重啟 systemctl restart mariadb
Nginx
想要充分發(fā)揮后端服務(wù)的能力,Nginx少不了,Nginx能夠?qū)崿F(xiàn)靜態(tài)資源代理,也可以反向代理服務(wù)器,從而能夠提高服務(wù)的健壯性
安裝Nginx
- 安裝
yum-utils
yum install -y yum-utils
- 添加
yum源。
vim /etc/yum.repos.d/nginx.repo
內(nèi)容如下:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
- 執(zhí)行安裝命令
yum install -y nginx
- 查看
nginx版本
#查看nginx版本
nginx -v
#查看編譯參數(shù)
nginx -V
- 查看安裝目錄
rpm -ql nginx
- 查看配置文件
# 用于日志切割
/etc/logrotate.d/nginx
配置Https
在前后端交互過(guò)程中,使用https請(qǐng)求是很有必要的,但是開(kāi)啟https需要根據(jù)域名來(lái)配置,
,所以需要購(gòu)買或者使用解析到服務(wù)器的域名。
有了域名還不行,需要有證書(shū)才能開(kāi)啟https,有的同學(xué)可能說(shuō)了,可以自己通過(guò)openssl來(lái)自簽名證書(shū),這樣也是可以的,但是在一些瀏覽器還是會(huì)顯示不安全證書(shū),所以為了瀏覽器能夠在我們的網(wǎng)站中顯示安全的鎖,我們需要使用權(quán)威機(jī)構(gòu)的證書(shū)來(lái)操作,當(dāng)然是免費(fèi)的了,我們使用letsencrypt,是全球權(quán)威的自簽名 證書(shū),證書(shū)的有效期是 6 個(gè)月,證書(shū)到期可以續(xù)期。
使用letsencrypt不得不說(shuō)到certbot,它是完美支持letsencrypt的命令行工具,通過(guò)certbot可以簽名、續(xù)期證書(shū),官網(wǎng)地址請(qǐng)看這里,在官網(wǎng)中可以通過(guò)選擇https要運(yùn)行的軟件和系統(tǒng),來(lái)提供安裝的說(shuō)明。以下是基于Nginx和CentOS來(lái)安裝的certbot
-
需要確定
Nginx是運(yùn)行狀態(tài),域名已經(jīng)解析到服務(wù)器的IP# 查看 Nginx 運(yùn)行狀態(tài) systemctl status nginx # 查看域名的解析地址 dig www.example.com -
安裝
certbotsudo yum install certbot python2-certbot-nginx -
簽名域名
sudo certbot certonly --nginx --register-unsafely-without-email -
簽名完成后就可以在
Nginx中開(kāi)啟https的證書(shū)了,證書(shū)的位置在/etc/letsencrypt/live/目錄中,證書(shū)的文件夾名稱為簽名的域名,以下是在Nginx中配置https的配置文件實(shí)例upstream copybook_pongj { server localhost:35231; } server { listen 80; server_name copybook.pongj.com; rewrite ^(.*) https://$server_name$1 permanent; } server { listen 443 ssl; server_name copybook.pongj.com; ssl_certificate /etc/letsencrypt/live/copybook.pongj.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/copybook.pongj.com/privkey.pem; location / { try_files $uri $uri/ /index.html; root /data/pongj/copybook-web/dist/; index index.html index.htm; } location ~ /(parse|api|public) { proxy_pass http://copybook_pongj; # Proxy setting proxy_redirect off; proxy_set_header Host $host:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } #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; } }在示例文件中使用了反向代理,將業(yè)務(wù)服務(wù)器和資源文件通過(guò)
location分離開(kāi)來(lái),在默認(rèn)的http請(qǐng)求中,將http請(qǐng)求重定向到https請(qǐng)求處理,通過(guò)listen 443 ssl開(kāi)啟https
其他工具
docker
源安裝
經(jīng)常關(guān)注云計(jì)算方面的同學(xué)可以了解,容器技術(shù)現(xiàn)在比較火熱,所以我們可以在服務(wù)器中部署自己的docker服務(wù),配合docker-compose,以及kubernetes搭建自己的練手后花園
卸載舊版本
sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine
安裝依賴包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加yum源
# 官方源
# sudo yum-config-manager \
#--add-repo \
#https://download.docker.com/linux/centos/docker-ce.repo
# 建議使用國(guó)內(nèi)源
sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安裝最新版本的docker-ce
sudo yum-config-manager --enable docker-ce-edge
安裝測(cè)試版本的docker-ce
sudo yum-config-manager --enable docker-ce-test
安裝穩(wěn)定版本
sudo yum makecache fast
sudo yum install docker-ce docker-ce-cli containerd.io
配置鏡像加速
linux
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
macos
右鍵點(diǎn)擊桌面頂欄的 docker 圖標(biāo),選擇 Preferences ,在 Daemon 標(biāo)簽(Docker 17.03 之前版本為 Advanced 標(biāo)簽)下的 Registry mirrors 列表中加入下面的鏡像地址:
$ http://f1361db2.m.daocloud.io
安裝完成之后重啟docker即可
sudo systemctl restart docker
腳本安裝
curl -fsSL https://get.docker.com/ | sh
# or
wget -qO- https://get.docker.com/ | sh
docker-compose
-
下載
docker-compose執(zhí)行文件sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose -
添加執(zhí)行權(quán)限
sudo chmod +x /usr/local/bin/docker-compose -
如果安裝完成執(zhí)行命令后找不到
docker-compose,需要手動(dòng)添加文件鏈接sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
安裝完成后就可以通過(guò)docker-compose開(kāi)啟多個(gè)容器互聯(lián)了
更多內(nèi)容
更多的內(nèi)容請(qǐng)關(guān)注GitHub,或者關(guān)注我的公眾號(hào)@全棧開(kāi)發(fā)師,我會(huì)不定時(shí)分享一些全棧方向的開(kāi)發(fā)內(nèi)容,謝謝分享