1 前端vue项目打包部署:
1.1 vue项目打包
前端项目用vscode进行开发,项目整体目录如下
在config目录下的配置文件中配置好后端服务器的ip地址和端口;
在终端输入npm run build,系统会自动生成一个dist的文件夹,这就是打包后所需的项目文件;
把dist文件夹放在linux服务器上,路径要与nginx配置的路径一致。
1.2 安装并配置nginx
(1)下载nginx安装包:
wget http://nginx.org/download/nginx-1.21.4.tar.gz
(2)解压缩:
tar -zvxf nginx-1.21.4.tar.gz
(3)修改nginx配置:
vi /data/soft/nginx-1.21.4/conf/nginx.conf
nginx.config具体内容如下:
#user nobody;
worker_processes 1; #nginx进程数,建议按照cpu数目来指定,一般为它的倍数。
events {
worker_connections 1024; #单个后台worker process进程的最大并发链接数
}
http {
include mime.types; #设定mime类型,类型由mime.type文件定义
default_type application/octet-stream;
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,
#对于普通应用,必须设为 on,
#如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,
#以平衡磁盘与网络I/O处理速度,降低系统的uptime
sendfile on;
keepalive_timeout 65; #用于设置客户端连接保持活动的超时时间,在超过这个时间之后服务器会关闭该链接。
server {
listen 9999; #server全局快配置监听和服务
server_name 192.168.20.188; #说明该服务器的ip,server_name可直接注释掉
location / { #localtion块,配置自己的代理(这里是代理前端页面的路径)
root /data/front; #站点根目录,可以是相对路径,也可以使绝对路径
index index.html index.htm; #默认主页
add_header Cache-Contro no-store;
add_header Access-Control-Allow-Origin *;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /api/ { #这里是转发后端接口的路径
proxy_connect_timeout 600; #默认主页
proxy_read_timeout 600;
proxy_send_timeout 600;
# 后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
#反向代理配置
proxy_pass http://127.0.0.1:10020/gz-master/;
}
}
}
如果当前用http://192.168.20.188:9999/api/getName进行访问,则会被代理到
http://127.0.0.1:10020/gz-master/getName这个url上。
注意:如果proxy_pass配置的地址漏了最后的 “ / ”,则会被代理到http://192.168.20.188:9999/gz-mastergetName,此时就会访问失败。
(4)启动nginx服务器:
cd /data/soft/nginx-1.21.4/sbin
./nginx
注意:./表示执行当前目录下的nginx文件,并且只能用于执行拥有执行权限的文件。
(5)查看运行状态(可查看nginx的进程号):
ps -ef | grep nginx
执行ps -ef命令显示内容如下:
显示内容说明:
扩展:nginx其余常用命令
1)停止nginx
./nginx –s stop
2)修改配置后重启nginx服务器
./nginx -s reload
3)检查配置文件是否正确
./nginx –t
4)强制停止Nginx服务器
kill -9 进程号
2 后端部署
2.1 后端jar包部署
前提:jdk环境已部署
后端打包的jar放置在Linux服务器的/data/project上,在该目录下创建保存日志的文件。
cd /data/project
rz #回车,选择本地上传的文件点确定上传文件
启动程序,存放日志的不同操作:
(1)存放在默认的日志文件内
touch nohup.out #创建文件nohup.out保存日志
nohup java -jar GzMaster.jar & #启动程序,日志默认写到nohup.out文件
tail -f nohup.out #查看日志
(2)存放在指定的日志文件内
touch output.log #创建文件output.log保存日志
nohup java -jar GzMaster.jar >> output.log 2>&1 & #启动程序,日志写到指定的output.log文件中
tail -f output.log #查看日志
退出查看日志使用 :Ctrl+Z
扩展:
查看当前所有启动的java程序:(可查看进程号)
jps -l
强制停止java程序:
kill -9 进程号
通过进程号查看项目所在绝对路径:
ll /proc/进程号
2.2 后端war包部署
前提:jdk环境已部署
(1)下载apache-tomcat-8.0.50.tar.gz放在服务器上,解压tomcat
tar -zxvf apache-tomcat-8.0.50.tar.gz
(2)把war包放在Tomcat的webapps目录下
rz #系统会弹出本地文件选择框,选择war包,点击确定上传
(3)启动Tomcat服务(执行Tomcat的bin目录下的startup.sh)
bash startup.sh
(4)进入到Tomcat下的logs目录,动态查看日志文件,退出查看日志使用 :Ctrl+Z
tail -f catalina.out
扩展:
查看运行状态
ps -ef|grep tomcat #可查看该tomcat的进程号和所在绝对路径
强制停止java程序:
kill -9 进程号
3 常用命令扩展
(1)根据字符串查询日志中关键词出现的位置(显示该关键字前10行和后10行相关日志)
cat -n output.log | grep-n -B10 -A10 关键字
(2)查看某段时间内的日志:sed -n '/开始时间/,/结束时间/p' 日志文件
sed -n '/2021-01-01 12:00:00/,/2021-01-01 17:00:00/p' output.log | grep 关键字
(3)下载jar或war到本地
sz GzMaster.jar
可在本地用java反编译工具(jd-gui.exe或luyten.exe)来查看文件的源码。
(4)备份文件(比如备份之前的jar包)
mv GzMaster.jar GzMaster.jar20220128 #修改GzMaster.jar的文件名
(5)强制删除文件及其子目录(比如删除GzMaster.jar20220128文件)
rm -rf GzMaster.jar20220128
(6)查看服务器ip
ifconfig
(7)清空nohup.out文件内容,不用rm文件,也不需要关闭服务
echo '' > nohup.out
(8)切换到超级用户权限
su - root