1.云服务器的购买:

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx

2.域名申请+备案

3.安装Xshell

4.将服务器的公网ip设置在

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_02

xshell新建会话中的 

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_宝塔 java项目启动成功 状态未启动_03

上,5.

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_服务器_04

输入服务器创建的实例的实例密码

 

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_宝塔 java项目启动成功 状态未启动_05

 这样就是显示已连接

6.安装宝塔

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_服务器_06

 输入到xshell中

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_宝塔 java项目启动成功 状态未启动_07

安装完成 

7.使用阿里云服务器ECS安装BT宝塔面板,安装完毕后宝塔面板会提示,若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口,需要配置服务器

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_服务器_08

在入方向进行手动添加

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_09

 8.复制外网面板地址

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_linux_10

用浏览器打开,然后输入对应的username,和password

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_linux_11

 9.宝塔部署java环境

 刚进入宝塔会有个安装选项,选择第一个,进行一键安装

新建一个数据库

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_linux_12

点击导入, 将本地数据库导入进去

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_宝塔 java项目启动成功 状态未启动_13

导入成功

10.点击安全,放行888(nginx)、8777(这个是我的后端端口,可以自己定)和3306(数据库)、8080、6379(redis)这五个端口 

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_搜索_14

并且需要从阿里云服务器的安全组添入这些端口

11.安装tomcat,然后就可以访问8080端口了

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_搜索_15

并且可以远程连接数据库了:

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_linux_16

 

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_服务器_17

redis环境配置:

1.打开redis配置文件,Ctrl+F搜索bind,将127.0.0.1 改为0.0.0.0,不然外网搜索不到

2.在配置文件中找到requirepass配置节点,删除前面的#以去掉注释。将foobared修改为自己的密码(这里不需要,不然springboot连接redis会报错,或者springboot的yaml文件设置redis密码)

3.然后重启redis(很重要)

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_linux_18

 修改完成后重新启动Redis服务,配置即可生效。

nginx(这里可以不用配置):

在软件商城下载之后,需要进行配置,打开配置文件,搜索server

将监听的端口号改为888

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_linux_19

 并且root路径也有问题

搜索该路径,可以发现,根路径为/www/server/phpmyadmin/phpmyadmin_7d9764bcb8f00359/,修改

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_搜索_20

 再访问888端口,成功(账户密码为对应的数据库用户名和密码)

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_搜索_21

这里是nginx全局配置,一般情况下不会在这里代理项目,后面会说到nginx对前端项目的配置

11.宝塔软件商城搜索一键

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_linux_22

对java环境进行一键安装 

11.2 配置xftp

首先下载xftp6(最多到版本6,不能到7)

再下载c32asm

使用c32asm的16进制打开nslicense.dll文件

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_23

ctrl+f,查找7F0C 81F9 8033 E101,将紧随其后的0F86,改为0F83,保存文件,有时可能需要管理员身份运行编辑器来覆盖保存修改后的文件
重新双击打开xftp6即可。

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_linux_24

点击传输,有该弹窗即可

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_搜索_25

12.备案成功后,开始进行域名解析

在阿里云搜索域名解析,填写公网Ip

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_26

 

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_搜索_27

15.需要把代码进行一个打包

首先,点击setting=>file Encoding,设置文件编码格式为utf8,并且在transparent native ...上进行一个打勾

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_服务器_28

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

在父项目里进行依赖的添加,用于打包

另外将父目录依赖添加打包后的名字:

<build>
        <finalName>blogApi</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

然后在maven里面选择打包,记得把localhost改为自己的公网ip

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_搜索_29

然后把打包好的jar和application.yaml上传到服务器的home目录下

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_30

 然后开始运行该项目,点击网址,选择添加JAVA项目

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_宝塔 java项目启动成功 状态未启动_31

记得在宝塔和阿里云放行8777端口

成功运行

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_linux_32

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_33

前端也可以访问

前端部署

前端先使用 npm run build打包,把请求的baseUrl改为api,下面会做baseURL的反向代理

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_宝塔 java项目启动成功 状态未启动_34

上传到服务器

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_服务器_35

阿里云服务器搜索域名,将自己的ip进行dns解析,主机记录填*

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_36

点击php项目的添加站点,把自己的域名添加进去

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_37

网站目录是你自己前端打包的dist文件,然后再传到服务器的根目录,运行目录就是/,不用管 

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_38

点击配置文件,使用nginx配置反向代理

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_宝塔 java项目启动成功 状态未启动_39

所以要自己在宝塔和阿里云放行这个80端口 

我的配置文件:

server
{
    listen 80;
    server_name blog.suqiqaq.cn;
    index index.php index.html index.htm default.php default.htm default.html;
    root /home/blogApi/;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    include enable-php-00.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/blog.suqiqaq.cn.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
  #   location / {
  #           root  /home/blogApi/;
		# 	try_files $uri $uri/ /index.html;
  #           index  index.html index.htm;
  #   }
    
     location ^~/api/ {
			proxy_set_header Host $http_host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header REMOTE-HOST $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://127.0.0.1:8777/;
		# 	proxy_connect_timeout 300s;
			proxy_http_version 1.1;
			proxy_set_header Upgrade $http_upgrade;
			proxy_set_header Connection upgrade;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
    }
    
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null; 
    }
    access_log  /dev/null;
    error_log  /www/wwwlogs/blog.suqiqaq.cn.error.log;
}
location ^~/api/ {
             proxy_set_header Host $http_host;
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header REMOTE-HOST $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_pass http://127.0.0.1:8777/;
         #     proxy_connect_timeout 300s;
             proxy_http_version 1.1;
             proxy_set_header Upgrade $http_upgrade;
             proxy_set_header Connection upgrade;
     }

这里做的是一个反向代理,将前端的前缀api代理为http://127.0.0.1:8777/,

127.0.0.1是本机,由于前端后端是同一个服务器跑,所以填本机就行

然后启动站点,就可以运行了

宝塔 java项目启动成功 状态未启动 宝塔运行目录没有public选择_nginx_40

 到这里服务器的部署就结束啦