一、项目背景
项目背景,现在开发的项目,需要搭建一个Linux环境,方便远端的测试人员访问项目。项目采用的是前后端分离,前端使用Node.js+React+webpack,在部署时,只需要使用webpack打包生成静态文件,就能实现前端的访问。如何实现,下面的不走会一步步介绍,后端时候的是Java开发的后台逻辑,使用Gradle将项目打成war包,部署在服务器上,至于数据库,数据库没有放在服务器上,直接在后台对数据库连接做了连接的处理。
二、安装环境
此次环境需要安装的有Node.js(前端环境)、Nginx(反向代理服务器)、Tomcat(后端war包部署环境)、Redis(Nosql缓存)。
2.1 安装Node.js
命令:sudo apt-get install nodejs
2.2安装npm
sudo apt-get install npm
安装完成后可以通过命令查看相应的版本,检查是否安装成功。
2.3 安装Nginx
直接使用apt仓库安装, sudo apt-get install nginx
安装完成后查看各文件安装位置,
/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件
/usr/share/nginx:存放静态文件
2.4 安装 Redis
通过命令行安装:sudo apt-get install redis-server
安装完成后,直接通过redis-cli查看,使用ping看是否安装成功!
2.5 Tomcat 安装
这里通过官网下载相应的压缩包(下载地址)
传到Linux系统指定文件夹下,解压到指定文件夹。
解压命令: sudo tar -zxvf apache-tomcat-8.5.30.tar.gz
这里我先做了解压,最后在移动到/usr/local路径下新建的tomcat文件夹下
三 、 配置
首先是Node.js,无需配置,node只提供一环境,毕竟不在服务器上开发,Redis也无需配置,只使用了本地的缓存,配置都在后端写好了。这里我们需要配置的是Nginx,Tomcat。
3.1 配置Tomcat
使用Nginx主要是通过前端的静态资源,当需要请求后端的服务时,需要通过Nginx反向代理到后端的服务(这里使用的是tomcat)。这里我们到tomcat的安装目录,在bin文件下,找到startup.bat文件以管理身份打开。
在配置文件末尾加上:
#set java environment
JAVA_HOME=/usr/local/java/jdk1.8.0_171 //本机jdk安装地址
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOEM/bin:$PATH
export JAVA_HOME CLASS_PATH PATH
修改端口
根据项目需要,修改tomcat请求端口,我这里使用的还是默认的8080,
打开server.xml文件,文件在安装目录conf下
端口号:
* 拓展 增加用户功能,方便以后项目多的话,方便管理。
增加用户在安装目录下的conf文件夹下的tomcat-user.xml文件下,同样的方式打开
打开文件后在文件的最后加上:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="admin" roles="manager-gui,admin-gui"/> //用户,密码
配置完成后,启动tomcat,在bin文件夹下,使用sudo sh startup.sh启动
输入地址加载出tomcat欢迎页安装成功!
3.2 配置Nginx
前面也有说到Nginx的各文件夹地址:
/usr/sbin/nginx:主程序
/etc/nginx:存放配置文件
/usr/share/nginx:存放静态文件
配置文件放在/etc/nginx文件夹下。进入/nginx 配置文件夹,发现有很多配置文件,我们需要配置的是nginx.conf
使用vim,或者如果是装了其他的编辑器,可以直接通过编辑器打开修改。
编辑命名,我直接使用gedit打开。
http {
##
# Basic Settings
##
server {
listen 8000; //前端代理端口
server_name localhost; //IP
location / {
root /home/jerry/Desktop/app/dist; //前端资源入口文件
index index.html index.htm; //入口文件
try_files $uri $uri/ /index.html;
}
location /tool {
proxy_pass http://localhost:8080; //后端服务代理
}
}
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
}
多余的不用看,我们只需要配置server{}部分。修改完成后保存。
通过/usr/sbin 文件夹下 ./nginx -t 检查配置是够有问题。
启动Nginx 还是在/usr/sbin 文件夹下 通过命令 ./nginx -s start 启动
通过localhost:80,查看是够启动成功。
四、部署项目
4.1前端项目
通过webpack打包成静态文件,我是这里直接在桌面上建了app文件夹,将前端文件传入到app文件夹下,这里可以再回去看一下nginx配置文件,location下的root,就是静态文件存放的地址。当然这里肯定是先传静态文件,再配置nginx。
root /home/jerry/Desktop/app/dist; //前端资源入口文件
4.2 后端部署
将后端的java文件,打包成war包,上传至tomcat安装目录的webapp目录下,这里我将其解压,重命名为tool,
部署完成后,我们可以试着去登录tomcat管理一下项目,
确保后端启动完成后,我们直接在浏览器访问,前端的项目入口,这里是8000端口,为什么是8000,这里就是刚才在nginx中配置的listen监听的端口号。
listen 8000; //前端代理端口
浏览器打开测试:成功登录,通过前端请求,访问后端代理服务。
这里还有一点就是注意,80,8000,8080,端口被占用,或者防火墙端口禁用的问题。
这个ubutu只是我的测试环境,真是的项目是在centOS版本上跑的,我会将在centOS上部署,的流程再整理一下发出,其实基本上相同只是安装软件会麻烦一点,ubuntu方便就在于他有一个源文件库,我们可以通过命令下载,有的无需配置即可使用。这次就分享到这里,可以加下公众号方便学习,我会持续跟新,大家共同进步。