Springboot 项目部署到服务器上

项目部署到服务器上,有两种方式,一种 jar 包,一种 war 包

jar包 部署时,后续的域名配置,SSL证书等在nginx中配置

war包 部署时,后续的域名配置可以在tomcat中配置就好,修改项目时直接丢到webapps下就行

jar包

直接在IDEA 中将项目打成一个jar包,所以的修改均在打包之前完成。

jar包方式启动,也就是使用spring boot内置的tomcat运行。服务器上面只要你配置了jdk1.8及以上即可,不需要外置tomcat。另外 jdk安装参考】 

准备

环境

IDEA +Maven

Linux+JDK( ≥1.8)+nginx

开始

1、打开idea编辑器下方的terminal窗口,这也是idea编辑器自带的命令提示符,通过cd进入到项目目录下

2、打包

mvn clean install -Dmaven.test.skip

稍等一会,看到 BUILD SUCCESS 后说明已经打包完成!

3、此时到项目目录下会看到Target目录,在Target目录下有打成的jar文件 

注:******将依赖包也打包进来

增加build插件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com</groupId>
    <artifactId>EnctyptParamTool</artifactId>
    <version>1.0-SNAPSHOT</version>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <fastjson.version>1.2.32</fastjson.version>
    </properties>
    <dependencies>
        
        <!--辅助工具类-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.5.9</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <!--这部分可有可无,加上的话则直接生成可运行jar包-->
                    <!--<archive>-->
                    <!--<manifest>-->
                    <!--<mainClass>${exec.mainClass}</mainClass>-->
                    <!--</manifest>-->
                    <!--</archive>-->
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

具体参考:1、maven将依赖第三方包打包(package)到jar中

部署

1、上传到服务器上

任意新建一个文件夹,将 打包好的 jar包 移入

2、运行

nohup java -jar ***.jar >log.txt &

这种方法会把日志文件输入到你指定的文件中,没有则会自动创建,进程会在后台运行。

3、访问

ip+端口 

4、nginx代理

nginx安装配置参考链接

参考:链接 

配置nginx.conf:

vim /etc/nginx/nginx.conf   打开配置文件

vim /etc/nginx/conf.d/default.conf

只需该改动2处即可:

server {
    listen       80;
    server_name  span.fun;   #换上你准备的域名 

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        #配置访问的项目路径(注:这里重点)
        proxy_pass  http://47.100.207.28:8000;  #此处一定加冒号,不然重启服务报错

        proxy_set_header           Host $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header           X-Forwarded-For       $proxy_add_x_forwarded_for;
        client_max_body_size  100m;

        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

5、配置SSL证书,https访问

参考:链接

server {
    listen  443 ssl;
    server_name  span.fun;

    #SSL配置
         ssl_certificate "**.pem"; #将domain name.pem替换成您证书的文件位置+名称。
         ssl_certificate_key "*.key"; #将domain name.key替换成您证书的密钥文件位置+名称。
         ssl_session_timeout 5m;
         ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密算法。
         ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
         ssl_prefer_server_ciphers on;

    location / {
        #配置访问的项目路径(注:这里重点)
        proxy_pass  http://47.100.207.28:8000;

        proxy_set_header           Host $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header           X-Forwarded-For       $proxy_add_x_forwarded_for;
        client_max_body_size  100m;

        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
       # root   /usr/share/nginx/html;
    }
}

# 接收http请求,转到https 
server {
    listen 80;
    server_name span.fun; #需要将yourdomain.com替换成证书绑定的域名。
    rewrite ^(.*)$ https://$host$1; #将所有HTTP请求通过rewrite指令重定向到HTTPS。
    location / {
        #配置访问的项目路径(注:这里重点)
        proxy_pass  http://47.100.207.28:8000;

        proxy_set_header           Host $host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header           X-Forwarded-For       $proxy_add_x_forwarded_for;

        index index.html index.htm;
    }
}

此处需注意:

若出现错误:ERR_SSL_PROTOCOL_ERROR

参考:链接

6、域名访问

域名

war包 

参考:链接

作者: Pam

出处: https://www.cnblogs.com/pam-sh/>

关于作者:网安在读

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(mir_soh@163.com)咨询.

原文地址:https://www.cnblogs.com/pam-sh/p/14354762.html