Centos中部署项目(前后端)

Posted hutianyao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Centos中部署项目(前后端)相关的知识,希望对你有一定的参考价值。

后端部署

SpringBoot项目

相关博客:https://blog.csdn.net/weixin_39723544/article/details/82012827

打包项目

类型

  • jar包

    • 运行:

      执行命令: java -jar xx.jar

    • 优点

      运行方便,适合运行在服务器的脚本项目

  • war包

    • 运行:

      放置在Tomcat的webapps目录中,然后呢启动Tomcat

    • 优点

      方便修改配置,适合web项目

配置

  • jar包

    1. 修改打包方式

      配置文件:pom.xml

      <!-- 将打包方式修改为jar -->
      <packaging>jar</packaging>
      
    2. 添加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>
      
    3. 通过maven打包

      进入项目根目录(即pom.xml所在文件目录),执行命令

      mvn clean package
      
    4. 运行项目

      进入jar包目录,执行命令

      java -jar ***.jar
      
  • war包

    1. 修改配置文件

      <!-- 将打包方式修改为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>
      
    2. 修改启动类

      启动类继承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);
          }
      }
      
    3. 通过maven打包项目

      进入项目根目录(即pom.xml所在文件目录),执行命令

      mvn clean package
      
    4. Tomcat部署

      将war包放置到Tomcat的webapps目录下,启动Tomcat

配置域名映射

  1. 修改Tomcat的配置文件

    /conf/server.conf

    1. 修改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" />
      
    2. 修改Engine节点的name属性值

      将localhost修改成域名

      <!-- 修改前 -->
      <Engine name="Catalina" defaultHost="localhost">
      <!-- 修改后 -->
      <Engine name="Catalina" defaultHost="test.hutianyao.com">
      
    3. 修改Host节点的name属性值

      将localhost修改成域名

      <!-- 修改前 -->
      <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
      <!-- 修改后 -->
      <Host name="test.hutianyao.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
      
    4. 在<Host name="xxx.com" ...节点里面最后位置加上节点信息,docBase为项目的绝对路径

      <Context path="" docBase ="D:deploycm" reloadable="false"></Context>
      
  2. 保存配置文件,重启Tomcat

  3. 配置系统的host文件,添加域名配置

    当前服务器IP 域名
    ## 示例
    192.168.85.128 www.testnginx.com
    
  4. 直接使用配置的域名进行访问即可

前端部署

Vue项目

打包项目

  1. 在项目的根目录下执行命令

    npm run build
    
  2. 得到打包后的项目

    执行打包命令之后,项目根目录新生成的dist文件夹即是打包好的项目,可以直接运行

部署项目

使用nginx部署

  1. 安装nginx

    http://nginx.org/en/download.html

  2. 配置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
    

    使配置文件生效。

  3. 修改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.转发地址
        } 
    }
    
  4. 重启nginx

    ## 检查配置
    nginx -t
    ## 重启nginx
    nginx -s reload
    
  5. 如果配置域名的话,需要配置系统host文件,添加域名解析

    当前服务器IP 域名
    ## 示例
    192.168.85.128 www.testnginx.com
    
  6. 访问项目

以上是关于Centos中部署项目(前后端)的主要内容,如果未能解决你的问题,请参考以下文章

部署前后端分离项目

CentOS7/8系统下,使用Jenkins实现SpringBoot+Vue前后端分离项目持续集成,一键编译打包跨设备部署,完整详细教学演示

CentOS7/8系统下,使用Jenkins实现SpringBoot+Vue前后端分离项目持续集成,一键编译打包跨设备部署,完整详细教学演示

CentOS7/8系统下,使用Jenkins实现SpringBoot+Vue前后端分离项目持续集成,一键编译打包跨设备部署,完整详细教学演示

CentOS7/8系统下,使用Jenkins实现SpringBoot+Vue前后端分离项目持续集成,一键编译打包跨设备部署,完整详细教学演示

教你在 centos 中配置 nginx 实现前后端分离