项目手动部署到Linux服务器
前端
如何让用户访问到我们服务器上的网页呢?需要 web 服务器,如nginx 、apache、tomcat(适用于部署 java 后端项目)
安装 nginx
在公司里面安装,可能没有 root 权限:Nginx 安装的权限问题
参考文章:https://zhuanlan.zhihu.com/p/425790769
- 用系统自带的软件包管理器快速安装,比如 centos 的 yum(centos 的一个软件包管理器)
- 自己到官网安装稳定版:https://nginx.org/en/download.html,下载 tar.gz 后缀的文件
相关指令如下:
# 在 root 目录下创建 services 目录,用来存放所有项目的依赖和安装包
mkdir services
# 进入到services目录中
cd services
# 指定下载的文件名称和下载地址,用 linux 的命令来下载,可以省去手动上传的时间
curl -o nginx-1.21.6.tar.gz http://nginx.org/download/nginx-1.21.6.tar.gz
# 解压
tar -zxvf nginx-1.21.6.tar.gz
# 进入到解压后的 nginx 目录中
cd nginx-1.21.6
# 安装相关依赖
yum install pcre pcre-devel -y
yum install openssl openssl-devel -y # 如果要配置 https之类的,需要 OpenSSL 库
# 设置系统配置参数
./configure --with-http_ssl_module --with-http_v2_module --with-stream
# 编译,把 C 语言文件编译成 二进制文件
make
# 安装
make install
编译出来的二进制文件在这里:
这是一个可执行文件
配置一下环境变量
vim /etc/profile
# 按下 shift+g 将光标定位到最后一行,在末尾新增 ":/usr/local/nginx/sbin",如下:
export PATH=$PATH:/usr/local/nginx/sbin
# 使文件生效,重新激活一下
source /etc/profile
# 执行以下命令,没有反应,没有输出 command not found,则成功
nginx
# 可以查看到 nginx 已经在 80 端口监听
netstat ntlp
上传前端项目
这里的前端是基于 Vue 的,在 build 之后,将 dist 包上传到服务器,可以先压缩后再上传
- 使用拖拽上传的方式需要先安装个小软件:yum install -y lrzsz
修改 nginx 配置文件
注意修改的是 /usr/local/nginx/conf 目录下的 nginx.conf 文件,不是 nginx-1.21.6/conf 下的。(执行编译、安装之后,原先的解压后的目录就没用了)
# 切换目录
cd /usr/local/nginx/conf
# 先把原本的文件复制一份,保险
cp nginx.conf nginx.default.conf
修改的内容有两个:
nginx 收到请求后,从 root 定义的路径找网页文件,需要把改为前端文件所在的位置
修改了 nginx 的配置后,需要重新加载一下配置,不用重启 nginx
nginx -s reload
如果没有把配置文件中的 user 改成和启动用户一致(比如当前启动用户是 root),会出现 403 错误
查看一下 nginx 进程的启动用户,这里是 nobody,应该是 root 才对,这就是没有修改启动用户导致。
测试
直接访问服务器的 ip,看看能否访问到首页
前端访问时,不需要加端口号,默认访问的就是 80 端口
服务器防火墙需要开放 80 端口
后端
安装 java、maven(如果想要在服务器完成打包的工作)
安装环境
# 使用 yum 安装,无需配置环境变量,一步到位
yum install -y java-1.8.0-openjdk*
java -version
# 安装 maven 到 service 目录
curl -o apache-maven-3.8.5-bin.tar.gz https://dlcdn.apache.org/maven/maven-3/3.8.5/binaries/apache-maven-3.8.5-bin.tar.gz
# 解压
tar -zxvf apache-maven-3.8.5-bin.tar.gz
# 配置环境变量,按下 shift+g 将光标定位到最后一行,复制 maven 路径粘贴到 nginx 环境变量后面,使用冒号分隔
vim /etc/profile
source /etc/profile
添加内容如图
上传后端项目
克隆远程仓库;也可以拖拽文件上传到 Linux 上。
git clone [url]
使用 maven 打包
这里可以先修改一下 maven 的配置文件,使用国内的阿里云镜像、修改 maven 工程默认的 jdk 版本为 1.8
# 打包需要先进入项目目录(需要根据 pom.xml 才能打包)
cd xxx-backend
# 打包构建,跳过测试
mvn package -DskipTests
运行后端项目
java -jar xxx-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod
# 执行后如果显示没有权限;给这个文件添加可执行权限
chmod a+x xxx-backend-0.0.1-SNAPSHOT.jar
执行后,命令行窗口就不能干任何事情了。
让项目在后台运行:
nohup java -jar xxx-backend-0.0.1-SNAPSHOT.jar --spring.profiles.active=prod &
查看
jobs # 看到哪些工作在运行
jps # 查看所有已经运行的 java 程序