本文整个流程是在博主完成一次项目上线全过程后复盘的记录,有没有写到的细节不清楚的可以私聊提问。选购服务器可以参考一、服务器选购,跳过可以直接点击目录,后端Java项目部署参考:项目上线流程(二)后端项目部署+脚本部署,前端next脚手架recat项目部署参考:项目上线流程(三)前端next脚手架recat项目部署+脚本部署
从环境搭建到前后端项目部署,证书部署,Springboot 打包 Java + next 脚手架运行 recat 项目上线部署
一、服务器选购阿里云服务器选购教程二、服务器配置及证书部署1.JDK安装2.nginx安装配置3.证书部署4.Git安装、关联仓库5.node安装pm及pm2安装7.Maven安装一、服务器选购
阿里云服务器选购教程
服务器优惠链接
新用户可以直接选购首页优惠款,如果是使用过阿里云的小伙伴或者想自己选配服务器配置、带宽、云盘大小、系统版本可以往下看
– 点击顶部搜索,找ECS,点击云服务器ECS,立即购买
– 选择配置
付费模式默认包年包月就可;
可用区主要根据目标用户所在的地理位置选择地域;
实例规格可以再筛选处选择CPU核心数、内存大小进行筛选,按需选取;
镜像就是系统,自选;
云盘一般40G就够了(笔者这边数据库和redis用的都是阿里云的云redis和云RDS产品,不存在本地数据库占用云盘的情况,也不建议在这里自己安装数据库,不方便管理);
快照不需要选;进入下一步
网络不需要选;
带宽选择按量付费5M峰值;
其他都不用选;下一步
密码、服务器名之类的填一下就可以确认订单了
二、服务器配置及证书部署
1.JDK安装
# 查找所有yum search java|grep jdk
# 安装java-1.8.0-openjdkyum install java-1.8.0-openjdk
# 查看版本java -version
# 查看javac是否可用javac# -bash: javac: command not found# 原因:默认安装完只有运行环境,java安装目录下只有jre文件夹。后面maven打包要用到,如果不使用一键部署在这里可以不装# 安装yum install java-1.8.0-openjdk-devel.x86_64# 查看javac是否可用javac
2.nginx安装配置
# 安装 nginx 需要先将官网下载的源码进行编译,编译依赖gcc环境yum install gcc-c++# Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。需要安装两个安装包pcre和pcre-develyum install -y pcre pcre-devel# Nginx的压缩算法gzip压缩:zlib库yum install -y zlib zlib-devel# 如果要使用 https,需要安装 OpenSSL 库yum install -y openssl openssl-devel# 下载nginx压缩包cd /usr/localwget -c /download/nginx-1.20.1.tar.gz# 解压nginx并进入目录tar -zxvf nginx-1.20.1.tar.gzcd nginx-1.20.1# 使用nginx默认配置./configure \--prefix=/usr/local/nginx \--pid-path=/usr/local/nginx/run \--user=nginx \--group=nginx \--with-http_ssl_module \--with-http_flv_module \--with-http_stub_status_module \--with-http_gzip_static_module \--with-pcre#编译安装make && make install
执行完上述命令会在/usr/local下出现一个nginx目录,这里就是nginx的家了执行/usr/local/nginx/sbin/nginx
就可以启动了,ps -ef | grep nginx
查看进程
# 进入nginx配置目录cd /usr/local/nginx/conf# 创建证书目录mkdir cert# 创建自定义配置目录mkdir conf.d# 查看ll
使用过程中遇到过一个问题一起记录一下
# 启动失败nginx: [emerg] getpwnam("nginx") failed
# 原因是没有安装nginx用户导致的无法启动useradd -s /sbin/nologin -M nginxid nginx/usr/local/nginx/sbin/nginx #启动成功
3.证书部署
证书选购:阿里云免费证书
订购免费证书,然后跟你的域名绑定,下载
然后解压并把文件改成跟你域名一样的名字(不改也行,只是为了方便管理)
上传到服务器上刚刚建好的cert目录并将这个server配置写成一个文件放到conf.d目录下,域名记得改server_name、ssl_certificate、ssl_certificate_key
server {listen 80;server_name ;rewrite ^(.*)$ https://${server_name}$1 permanent;}server {listen 443 ssl;server_name ;ssl_certificate/usr/local/nginx/conf/cert/.pem;ssl_certificate_key /usr/local/nginx/conf/cert/.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;location /{proxy_pass http://localhost:8080;}}
4.Git安装、关联仓库
# 命令安装yum install git -y
默认安装路径是: /usr/share/git-core
然后就可以执行git命令了
# 生成git公钥ssh-keygen -t rsa -C "邮箱"
三次回车,然后会生成公钥到/root/.ssh
# 我这里是用root账户,如果用的不是root账户则在账户目录下的.ssh目录cd /root/.ssh
# 复制粘贴到git仓库的下面图片的公钥框里,这样服务器就能拉取代码了cat id_rsa.pub
# cd到项目目录cd /opt/# 拉取远程代码到指定路径(只能是空目录)git clone ssh地址 目标目录
5.node安装
cd /usr/local/# 下载node压缩包wget /mirrors/node/v14.17.4/node-v14.17.4-linux-x64.tar.gz# 解压tar -xf node-v14.17.4-linux-x64.tar.gz# 目录改名mv node-v14.17.4-linux-x64 /usr/local/nodejs
# 添加软链ln -s /usr/local/nodejs/bin/node /usr/local/binln -s /usr/local/nodejs/bin/npm /usr/local/bin# 查看node版本node -v
pm及pm2安装
# cnpm安装,cnpm是为了下载一些国外的包时下载不到而使用国内镜像,如果项目没需求可以不安装npm install -g cnpm --registry=https://registry.# 创建软链sudo ln -s /usr/local/nodejs/bin/cnpm /usr/local/bin/cnpm# pm2安装npm install pm2 -g# 创建软链ln -s /usr/local/nodejs/bin/pm2 /usr/local/bin/# 查看进程pm2 list
7.Maven安装
如果不需要用到java脚本部署则不需要安装
# 下载压缩包wget https://ftp.kddi-research.jp/infosystems/apache/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz# 解压tar -zxvf apache-maven-3.8.4-bin.tar.gz
# 配置环境变量vi /etc/profile
# 拉倒最下加上这两行环境变量export MAVEN_HOME=/usr/local/apache-maven-3.8.4export PATH=$MAVEN_HOME/bin:$PATH
ecs# 保存并退出:wq# 刷新环境变量source /etc/profile# 检查版本mvn -v
后端Java项目部署参考:项目上线流程(二)后端项目部署+脚本部署,
前端next脚手架recat项目部署参考:项目上线流程(三)前端next脚手架recat项目部署+脚本部署
很细的项目部署上线流程(一)服务器搭建环境从0开始 Linux安装JDK安装nginx部署ssl证书安装git安装node安装pm2安装maven