服務(wù)器:走向全棧開(kāi)發(fā)的第一步

服務(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

mariadbmysql的開(kāi)源替代版本,使用方式和mysql是一樣的

  1. 新建Mariadb.repo源文件

    vim /etc/yum.repos.d/Mariadb.repo
    
  2. 寫(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
    
  3. 安裝

    yum -y install MariaDB-server MariaDB-client
    
  4. 啟動(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

  1. 安裝yum-utils
yum install -y yum-utils
  1. 添加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
  1. 執(zhí)行安裝命令
yum install -y nginx
  1. 查看nginx版本
#查看nginx版本
nginx -v
#查看編譯參數(shù)
nginx -V
  1. 查看安裝目錄
rpm -ql nginx
  1. 查看配置文件
# 用于日志切割
/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ō)明。以下是基于NginxCentOS來(lái)安裝的certbot

  1. 需要確定Nginx是運(yùn)行狀態(tài),域名已經(jīng)解析到服務(wù)器的IP

    # 查看 Nginx 運(yùn)行狀態(tài)
    systemctl status nginx
    # 查看域名的解析地址
    dig www.example.com
    
  2. 安裝certbot

    sudo yum install certbot python2-certbot-nginx
    
  3. 簽名域名

    sudo certbot certonly --nginx --register-unsafely-without-email
    
  4. 簽名完成后就可以在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

  1. 下載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
    
  2. 添加執(zhí)行權(quán)限

    sudo chmod +x /usr/local/bin/docker-compose
    
  3. 如果安裝完成執(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)容,謝謝分享

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容