服务器:走向全栈开发的第一步
服务器:走向全栈开发的第一步
现在前端脚手架和框架语言给前端开发者带来更多的便利,在开发之余可能更想去了解一些开发的知识,而对于前端开发,熟悉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
mariadb
是mysql
的开源替代版本,使用方式和mysql
是一样的
-
新建
Mariadb.repo
源文件vim /etc/yum.repos.d/Mariadb.repo
-
写入内容
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
-
启动
# 启动 systemctl start mariadb # 设置开机启动 systemctl enable mariadb # 重启 systemctl restart mariadb
Nginx
想要充分发挥后端服务的能力,Nginx
少不了,Nginx
能够实现静态资源代理,也可以反向代理服务器,从而能够提高服务的健壮性
安装Nginx
- 安装
yum-utils
yum install -y yum-utils
- 添加
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
- 执行安装命令
yum install -y nginx
- 查看
nginx
版本
#查看nginx版本
nginx -v
#查看编译参数
nginx -V
- 查看安装目录
rpm -ql nginx
- 查看配置文件
# 用于日志切割
/etc/logrotate.d/nginx
配置Https
在前后端交互过程中,使用https
请求是很有必要的,但是开启https
需要根据域名来配置,
,所以需要购买或者使用解析到服务器的域名。
有了域名还不行,需要有证书才能开启https
,有的同学可能说了,可以自己通过openssl
来自签名证书,这样也是可以的,但是在一些浏览器还是会显示不安全证书,所以为了浏览器能够在我们的网站中显示安全的锁,我们需要使用权威机构的证书来操作,当然是免费的了,我们使用letsencrypt
,是全球权威的自签名 证书,证书的有效期是 6 个月,证书到期可以续期。
使用letsencrypt
不得不说到certbot
,它是完美支持letsencrypt
的命令行工具,通过certbot
可以签名、续期证书,官网地址请看这里,在官网中可以通过选择https
要运行的软件和系统,来提供安装的说明。以下是基于Nginx
和CentOS
来安装的certbot
-
需要确定
Nginx
是运行状态,域名已经解析到服务器的IP
# 查看 Nginx 运行状态 systemctl status nginx # 查看域名的解析地址 dig www.example.com
-
安装
certbot
sudo yum install certbot python2-certbot-nginx
-
签名域名
sudo certbot certonly --nginx --register-unsafely-without-email
-
签名完成后就可以在
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
-
下载
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
-
添加执行权限
sudo chmod +x /usr/local/bin/docker-compose
-
如果安装完成执行命令后找不到
docker-compose
,需要手动添加文件链接sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
安装完成后就可以通过docker-compose
开启多个容器互联了
更多内容
更多的内容请关注GitHub,或者关注我的公众号@全栈开发师,我会不定时分享一些全栈方向的开发内容,谢谢分享
推荐阅读
-
美团酒店服务使用Node.js实现JavaScript全栈开发的经验分享
-
python3全栈开发-并发编程的多进程理论
-
python3全栈开发-面向对象的三大特性(继承,多态,封装)之继承
-
python3全栈开发-补充UDP的套接字、操作系统、并发的理论基础
-
Java学习笔记-全栈-web开发-22-后端程序员用的前端框架——layUI
-
python全栈开发-常用模块的一些应用
-
Java全栈开发---Java ERP系统开发:商业ERP(十二)数据的导入导出(Excel)
-
ASP.NET全栈开发教程之在MVC中使用服务端验证的方法
-
用Django全栈开发. 集成AdminLTE的Dashboard页面
-
python3 全栈开发 -- 面向对象 类的组合和封装