前后端分离项目部署(服务器或本地)
前端部署(以vue项目为例)
部署环境:Nginx
配置文件:vue.config.js
更多可见此文章vue项目打包与配置-学习笔记(vuecli4)
:https://blog.youkuaiyun.com/hhhmonkey/article/details/119004525
以下是vuecli2:
CDN优化:
module.exports = {
...
// 配置webpack 可以在index.html文件中部署CDN优化
configureWebpack: {
// 排除
externals: {
vue: 'Vue',
axios: 'axios',
'vue-router': 'VueRouter',
vuex: 'Vuex',
iview: 'iview'
}
}
...
}
开启GZIP:
let CompressionWebpackPlugin= require('compression-webpack-plugin')
module.exports = {
...
configureWebpack: {
// GZIP压缩
plugins: [
new CompressionWebpackPlugin({
test: /\.js$|\.html$|\.css/, // 匹配文件
threshold: 10240 // 对超过10k文件压缩
})
]
}
...
}
nginx中配置:
http {
...
# 开启GZIP
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 9;
...
这里以windows server为例:
执行npm run build
之后,会在根目录生成dist目录,该目录则为打包生成的目录:
然后将其直接放在nginx的目录下:
在conf/nginx.conf
配置文件中进行设置:
这里的dist对应刚刚放置在nginx根目录下的dist文件夹。
然后再配置相应的端口映射:
可见此文nginx配置:https://blog.youkuaiyun.com/hhhmonkey/article/details/118556548
注意:Vue路由模式为history需添加的配置!!!
# Vue路由模式为history需添加的配置
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
root xboot;
index index.html;
}
然后进入nginx的根目录,打开cmd:用start nginx
命令启动服务,然后用tasklist /fi "imagename eq nginx.exe"
,查看nginx服务是否启动:
如果改变配置文件时,需要用nginx -s reload
命令重启nginx工作进程。
关闭服务:nginx -s stop
安全关闭:nginx -s quit
关闭所有nginx服务:taskkill /F /IM nginx.exe > nul
后端部署(以Springboot项目为例)
在有pom.xml文件夹即根目录下执行mvn package
命令,执行完毕后拷贝生成的tagert
文件夹中的.jar
文件至服务器,
若是用的Idea软件,可直接选择右侧maven,双击package即可:
在服务器的jar包的文件夹下执行命令:nohup java -jar -Xmx256m -Xms256m xxxxxx.jar &
-Xms
为JVM堆内存的初始值,超过后将扩容至最大值,通常与最大值设为一样避免内存抖动;-Xmx
为限制JVM的堆的最大内存,当最小堆占满后,会尝试进行GC,如果GC之后还不能得到足够的内存,那么就会扩展堆,如果-Xmx设置的太小,扩展堆就会失败,导致OOM错误提示
若出现乱码,则在java -jar
后加上-Dfile.encoding=utf-8
,如:java -jar -Dfile.encoding=utf-8 XXX.jar &
补充
另外例如nodejs后端部署可见博文:https://blog.youkuaiyun.com/hhhmonkey/article/details/119058586