Linux环境部署web项目(前后端分离、jar包、war包部署、Nginx)

Linux环境部署web项目(前后端分离、jar包、war包部署、Nginx)

jar包和War包的区别

jar包可以直接通过命令运行,jar包中的依赖含有Tomcat服务器组件依赖(Springboot项目)

java -jar  xxx.jar

war包的运行需要依赖外部的Tomcat服务器,将war包路径配置到Tomcat目录webapps目录下,运行Tomcat即可,所以在开发项目中,如果将来是需要配置在外部Tomcat服务器中运行的项目,需要在依赖中将Tomcat依赖排除。

前端项目的部署(部署在Nginx中)

1.项目在Linux环境打包

下载依赖

npm install --unsafe-perm --rgistory=http://registory.npm.taobao.org

生产环境打包,生成一个dist目录,目录结构中包含了index.HTML和static目录

npm run build:prod

2.部署在Nginx服务器上(前提:主机已经部署好了Nginx)

在Nginx的配置文件中更改配置选项

location{
		root: dist目录路径
}
user root  //防止权限问题出现

3.Nginx路径映射(前端服务与后端服务联机)

location{
	代理头(代码后续网上找)
	proxy-pass http://后端服务器主机IP:服务端口;(单机)
	proxy-pass http://集群名;(集群)
}

集群配置
upstream  集群名{
		server  后端服务主机名1:端口 weight=5;//权重,可不用配置
		server  后端服务主机名2:端口 weight=3;//权重,可不用配置
}

后端项目的部署(单体)

jar包模式:后端项目打包命令

主机安装maven

mvn package;

在新建的target目录中包含打包好的jar包,保存jar包即可

执行命令,&意思是后台执行

nohup java -jar xxx.jar &

项目就已经启动了

war包模式:后端项目打包命令

主机安装Tomcat

mvn package;

注意

1.在开发项目时,pom文件中packaging标签打war包

2.包依赖是排除Tomcat依赖

3.根目录下创建新类,继承于SpringBootServletInitializer类,重写configure方法

public class ApplicationServer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(启动类.class);
    }
}

在新建的target目录中包含打包好的war包,保存war包即可

将war包保存在Tomcat的安装目录下的webapps目录下,

更改Tomcat配置文件(conf文件夹中的server.xml),在Host标签中添加Context标签,改成根目录访问(XXX是war包名,不加后缀)

<Host>
	<Context path="/"  docBase="....webapps/xxx"  reloadable="false">
Host>

启动Tomcat服务器

service tomcat start

项目就已经启动了

后端项目的部署(集群)

很简单,就是将相同的单体项目部署在不同的主机即可。

你可能感兴趣的:(linux,java,spring,boot)