欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

服务器:走向全栈开发的第一步

程序员文章站 2022-06-15 15:53:00
...

服务器:走向全栈开发的第一步

现在前端脚手架和框架语言给前端开发者带来更多的便利,在开发之余可能更想去了解一些开发的知识,而对于前端开发,熟悉Node.js以及后端的一些数据库等会是一些比较容易上手的方式。拥有一台服务器是一件很酷的事情,所以分享一些常用的服务器软件的安装,以下的服务器默认是CentOS系统。

开发必备

Node.js

前端接触最多的后台语言当然是Node.js了,所以在服务器上需要安装Node.js。在正常的情况下官方会建议我们使用源码去编译安装,但是源码安装的话后续想要升级或者更改版本就需要重新编译,所以我们使用Node.js的版本管理神器nvm

安装 nvm 很简单使用安装脚本

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

安装完成后可以断开服务器连接,重新登录上就可以了,如果不想重新登录也是可以的,在根目录下执行

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

如果在下次登录服务器的时候显示 nvm报错如下

N/A: version "N/A -> N/A" is not yet installed.

是由于nvm默认的Node.js版本未指定,所以我们需要指定默认的Node.js版本

# nvm alias default [想要指定的默认版本]
nvm alias default node

Yarn

yarn是新一代的Node.js包管理工具,它可以缓存下载的每一个包,它还能并行化操作以最大化资源利用率,安装速度之快前所未有。

安装yarn很简单,首先添加源地址

curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

如果没有安装Node.js,需要先安装Node.js

curl --silent --location https://rpm.nodesource.com/setup_12.x | sudo bash -

然后执行安装的命令就可以了

sudo yum install yarn
## OR ##
sudo dnf install yarn

如果想要查看其它的安装方式,可以查看官网

Git

自从GitHub被微软收购以后,开放了个人私有库以及持续集成插件,现在不会使用Git就有点不好意思说出口了哈哈

安装 Git,之前我也是通过源代码模式来编译安装的,后来发现可以使用rpm包来安装,并且可以随时升级和删除,所以我推荐使用包管理来安装。

首先就是添加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源,然后执行安装

yum install git -y

查看安装的版本

git --version

更新git版本

yum upgrade git

MongoDB

作为后台开发,mongodb自然是少不了的,在现在数据结构多样化,NoSQL能够大大方便数据库结构的设计和存储

首先添加mongodb

vim /etc/yum.repos.d/mongodb-org-3.6.repo

配置yum源内容

[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

启动mongodb,默认的配置文件在/etc/mongod.conf,数据存储位置在/var/run/mongodb,如果有其他需求可以更改数据库位置

systemctl start mongod

启动成功我们就可以使用mongo来连接到数据库

Mariadb

mariadbmysql的开源替代版本,使用方式和mysql是一样的

  1. 新建Mariadb.repo源文件

    vim /etc/yum.repos.d/Mariadb.repo
    
  2. 写入内容

    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. 启动

    # 启动
    systemctl start mariadb
    # 设置开机启动
    systemctl enable mariadb
    # 重启
    systemctl restart mariadb
    

Nginx

想要充分发挥后端服务的能力,Nginx少不了,Nginx能够实现静态资源代理,也可以反向代理服务器,从而能够提高服务的健壮性

安装Nginx

  1. 安装yum-utils
yum install -y yum-utils
  1. 添加yum源。
vim /etc/yum.repos.d/nginx.repo

内容如下:

[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. 执行安装命令
yum install -y nginx
  1. 查看nginx版本
#查看nginx版本
nginx -v
#查看编译参数
nginx -V
  1. 查看安装目录
rpm -ql nginx
  1. 查看配置文件
# 用于日志切割
/etc/logrotate.d/nginx

配置Https

在前后端交互过程中,使用https请求是很有必要的,但是开启https需要根据域名来配置,

,所以需要购买或者使用解析到服务器的域名。

有了域名还不行,需要有证书才能开启https,有的同学可能说了,可以自己通过openssl来自签名证书,这样也是可以的,但是在一些浏览器还是会显示不安全证书,所以为了浏览器能够在我们的网站中显示安全的锁,我们需要使用权威机构的证书来操作,当然是免费的了,我们使用letsencrypt,是全球权威的自签名 证书,证书的有效期是 6 个月,证书到期可以续期。

使用letsencrypt不得不说到certbot,它是完美支持letsencrypt的命令行工具,通过certbot可以签名、续期证书,官网地址请看这里,在官网中可以通过选择https要运行的软件和系统,来提供安装的说明。以下是基于NginxCentOS来安装的certbot

  1. 需要确定Nginx是运行状态,域名已经解析到服务器的IP

    # 查看 Nginx 运行状态
    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中开启https的证书了,证书的位置在/etc/letsencrypt/live/目录中,证书的文件夹名称为签名的域名,以下是在Nginx中配置https的配置文件实例

    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;
        }
    }
    

    在示例文件中使用了反向代理,将业务服务器和资源文件通过location分离开来,在默认的http请求中,将http请求重定向到https请求处理,通过listen 443 ssl开启https

其他工具

docker

源安装

经常关注云计算方面的同学可以了解,容器技术现在比较火热,所以我们可以在服务器中部署自己的docker服务,配合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

# 建议使用国内源
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

安装测试版本的docker-ce

sudo yum-config-manager --enable docker-ce-test

安装稳定版本

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

右键点击桌面顶栏的 docker 图标,选择 Preferences ,在 Daemon 标签(Docker 17.03 之前版本为 Advanced 标签)下的 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执行文件

    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. 添加执行权限

    sudo chmod +x /usr/local/bin/docker-compose
    
  3. 如果安装完成执行命令后找不到docker-compose,需要手动添加文件链接

    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
    

安装完成后就可以通过docker-compose开启多个容器互联了

更多内容

更多的内容请关注GitHub,或者关注我的公众号@全栈开发师,我会不定时分享一些全栈方向的开发内容,谢谢分享

相关标签: 全栈开发