Centos中部署项目(前后端)
后端部署
SpringBoot项目
相关博客:https://blog.csdn.net/weixin_39723544/article/details/82012827
打包项目
类型
-
jar包
-
运行:
执行命令:
java -jar xx.jar
-
优点
运行方便,适合运行在服务器的脚本项目
-
-
war包
-
运行:
放置在Tomcat的webapps目录中,然后呢启动Tomcat
-
优点
方便修改配置,适合web项目
-
配置
-
jar包
-
修改打包方式
配置文件:pom.xml
<!-- 将打包方式修改为jar --> <packaging>jar</packaging>
-
添加spring boot maven插件,指定mainClass
配置文件:pom.xml
<build> <plugins〉 <plugin〉 <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifact> <configuration> <mainClass>com.cherry.framework.FrameworkApplication</mainClass> </configuration〉 <executions〉 <execution〉 <goals〉 <goal>repackage</goal> </goals> </execution〉 </executions> </plugin> </plugins> </build>
-
通过maven打包
进入项目根目录(即pom.xml所在文件目录),执行命令
mvn clean package
-
运行项目
进入jar包目录,执行命令
java -jar ***.jar
-
-
war包
-
修改配置文件
<!-- 将打包方式修改为war --> <packaging>war</packaging> <!-- 移除tomcat依赖或者将tomcat依赖scope改为provide --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat插件 --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <!-- 或者 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <!-- 将tomcat依赖scope改为provide --> <scope>provided</scope> </dependency <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- 防止使用Tomcat部署后,因为application.properties(或者application.yml)中配置的server.port和server.servlet.context-path失效,导致项目访问资源加载不到的问题 --> <build> <!-- 应与application.properties(或application.yml)中context-path保持一致 --> <finalName>war包名称</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
-
修改启动类
启动类继承SpringBootServletInitializer,并实现configure
@SpringBootApplication public class Application extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } }
-
通过maven打包项目
进入项目根目录(即pom.xml所在文件目录),执行命令
mvn clean package
-
Tomcat部署
将war包放置到Tomcat的webapps目录下,启动Tomcat
-
配置域名映射
-
修改Tomcat的配置文件
/conf/server.conf
-
修改Connector节点的port属性值
将端口8080改成80
<!-- 修改前 --> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!-- 修改后 --> <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
-
修改Engine节点的name属性值
将localhost修改成域名
<!-- 修改前 --> <Engine name="Catalina" defaultHost="localhost"> <!-- 修改后 --> <Engine name="Catalina" defaultHost="test.hutianyao.com">
-
修改Host节点的name属性值
将localhost修改成域名
<!-- 修改前 --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- 修改后 --> <Host name="test.hutianyao.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
-
在<Host name="xxx.com" ...节点里面最后位置加上节点信息,docBase为项目的绝对路径
<Context path="" docBase ="D:\deploy\cm" reloadable="false"></Context>
-
-
保存配置文件,重启Tomcat
-
配置系统的host文件,添加域名配置
当前服务器IP 域名 ## 示例 192.168.85.128 www.testnginx.com
-
直接使用配置的域名进行访问即可
前端部署
Vue项目
打包项目
-
在项目的根目录下执行命令
npm run build
-
得到打包后的项目
执行打包命令之后,项目根目录新生成的dist文件夹即是打包好的项目,可以直接运行
部署项目
使用nginx部署
-
安装nginx
-
配置nginx环境变量
在/etc/profile 中加入:
export NGINX_HOME=nginx安装路径 export PATH=$PATH:$NGINX_HOME/sbin ## 示例 export NGINX_HOME=/usr/local/nginx export PATH=$PATH:$NGINX_HOME/sbin
保存,执行命令:
source /etc/profile
使配置文件生效。
-
修改nginx的配置文件
conf/nginx.conf
upstream testnginx{ server localhost:8080; #server localhost:8081; } server { listen 80; #1.你想让你的这个项目跑在哪个端口 server_name 47.94.76.91; #2.当前服务器ip,可以直接配置域名 location / { root /home/dist/; #3.dist文件的位置(需要绝对路径) try_files $uri $uri/ /index.html; #4.重定向,内部文件的指向(照写) } location /apis { #4.当请求跨域时配置端口转发 proxy_pass http://47.92.76.97:8848/apis; #5.转发地址 } }
-
重启nginx
## 检查配置 nginx -t ## 重启nginx nginx -s reload
-
如果配置域名的话,需要配置系统host文件,添加域名解析
当前服务器IP 域名 ## 示例 192.168.85.128 www.testnginx.com
-
访问项目