欢迎光临
我们一直在努力

手把手教你将项目部署到服务器,一小时搞定。

平时我们开发完一套系统,如果其他人需要访问,类似于我们现在访问百度,那就需要部署服务器。

通常来说部署服务器,需要手动的部署服务器,首先要安装系统的环境,就拿JAVA说吧,包括JDK/mysql/nginx等等

超级麻烦。

偶然发现 一个部署神器:宝塔部署。

可以在线安装、在线部署非常方便。

今天给大家带来一个手把手将Java项目部署到宝塔的教程。

我们要在自己的服务器中安装宝塔面板,首先进入宝塔官网 

https://www.bt.cn/new/index.html 

点击“复制命令”按钮 

图片

将命令复制到 xshell(链接服务器的一个工具,在xshell中执行命令就跟在linux服务器中执行命令效果一样)的远程执行窗口中 ,回车后执行命令 等待些时间 就会生成宝塔面板的ip地址 用户名 密码了 。

图片

然后我们就可以到浏览器中输入生成的ip到地址栏中回车,就可以登录宝塔面板了 

图片

图片

那完整的部署一个前后端分离的java项目到宝塔面板并能成功访问都包含哪几个步骤呢?

具体的步骤包括:

一,安装mysql

二,安装JDK

三,安装Nginx

四,打包

 4.1 前端打包

4.2 后端打包

五,访问项目

第一步 安装mysql

点击“软件商店” 在软件列表中找到 mysql 如果此时未安装的话 我们点击mysql选项 最右侧的 “安装”按钮来进行安装 (我的因为已经安装了,因此仅显示“更新、设置和卸载”,否则仅会显示“安装”)

图片

然后在点击左侧的“数据库” 选项看 再点击“添加数据库”在弹窗中输入数据库名 例如:novel_sx  密码是自动生成的  访问权限选择所有人 点击“保存”后 

图片

我们就添加了一个数据库  然后我们还需要往新建的库中导入数据库表 这样程序才能正常的链接库 项目才能启动 。

图片

在这里呢我教大家用数据库链接工具navicate远程链接数据库的方式进行导入库表 ,但还有一步我们需要做 那就是到宝塔面板的 “安全”选项卡中 点击“添加端口规则”在弹框中的 端口位置输入3306 点击 确定后 这样的话 我们才能在navicate中链接到我们宝塔面板中新建的数据库 否则的话连不上。

图片

打开navicate(一个可以链接数据库的工具)  复制宝塔的ip  到 “主机名或ip地址”处 端口填写3306  用户名填写你在宝塔创建数据库的时候的用户名 例如:novel_sx 

密码填写创建好的密码即可 图中打码部分  点击“测试链接” 如果弹出“连接成功” 说明咱已经用navicate成功链接到在宝塔里建立的数据库了 

图片

 下一步我们可以通过Navicat链接我们的数据库,navicat是可视化的数据库。

官网Navicat图形界面 | 功能全面的数据库管理工具

也可自行百度使用不同版本

点击左下角的连接测试,如果显示连接成功,才是真正连接好了,否则重新搞。

图片

然后 点击“确定” 后就会看到线上的数据库表 例如“novel_sx”  然后我们再点击转储sql文件 到电脑中 找到我们的sql文件 导入即可

图片

第二步:配置nginx

到软件商店中安装“nginx”  我用的是1.22版本的(我的因为已经安装了,因此仅显示“更新、设置和卸载”,否则仅会显示“安装”)

图片

安装完后点击“设置”按钮对nginx进行设置  在配置文件中配置上我们要解析的网站以及后台服务保存后 重启nginx即可通过域名访问项目

图片

其中root路径就是前端项目在宝塔面板中的路径

图片

最后附上 nginx配置文件代码

worker_processes

  2;

events

 {

# 每个工作进程的最大连接数

worker_connections

  1024;

}

http

 {

# WebSocket连接升级映射

    

map

$http_upgrade

$connection_upgrade{

                        

default upgrade

# 默认升级连接

                        

''

 close;  

# 空值则关闭连接

    }

    

gzip

 on; 

# 开启gzip压缩

    

gzip_min_length

 500k; 

# 最小压缩文件大小(500k以下不压缩)

    

gzip_comp_level

 9; 

# 压缩级别(1-9,9最高)

    

gzip_types

 text/

plain application

/

javascript application

/

x-javascript

 text/

css application

/

xml text

/

javascript application

/

x-httpd-php

# 压缩文件类型

gzip_vary

 on; 

# 根据Accept-Encoding头动态返回gzip或普通内容

    

# 配置禁用 gzip 条件,支持正则,此处表示 ie6 及以下不启用 gzip(因为ie低版本不支持)

    

gzip_disable

"MSIE [1-6]\\."

;

server_tokens

 off; 

# 隐藏Nginx版本号

underscores_in_headers

 on; 

# 允许header中使用下划线

keepalive_timeout

  65; 

# 保持连接的超时时间

    

# compression-webpack-plugin 配置

    

#修改为合适的超时时间,单位为秒

    

# 代理相关超时设置

    

proxy_connect_timeout

 90; 

# 连接后端服务器超时时间

proxy_send_timeout

 90;  

# 发送请求到后端的超时时间

proxy_read_timeout

 90;  

# 从后端读取响应的超时时间

server

{

listen

       8080;  

# 监听8080端口

      

server_name

  localhost;  

# 服务器名称

    

root

  /www/wwwroot/vue/dist; 

# 网站根目录

#vite打包文件读取配置开始

      

# 包含MIME类型定义文件

      

include

 mime.

types

;

      

# 自定义MIME类型

      

types

      {

          application/

javascript mjs

;

      }

#vite打包文件读取配置结束

      

      

location

 / {

# 尝试按顺序查找文件:$uri → $uri/ → /index.html

try_files

$uri

$uri/ /

index

.html;

      }

# API接口代理

      

location

 /api/ {

# 代理到后端服务(8083端口)

proxy_pass

http

://localhost:8083/;

# 设置代理头信息

proxy_set_header

Host 

$host;

        

proxy_set_header

X-Real-IP

$remote_addr;

proxy_set_header

X-Forwarded-For

$proxy_add_x_forwarded_for;

proxy_set_header

X-Forwarded-Proto

$scheme;

      }

# 文件接口代理

      

location

 /api/

file 

{

# 代理到后端文件服务

proxy_pass

http

://localhost:8083/api/file;

# 设置代理头信息
        

proxy_set_header

Host 

$host;

proxy_set_header

X-Real-IP

$remote_addr;

        

proxy_set_header

X-Forwarded-For

$proxy_add_x_forwarded_for;

        

proxy_set_header

X-Forwarded-Proto

$scheme;

      }

#强制https

# if ($scheme = http ) {

#   return 301 https://$server_name$request_uri;
    

# }  

  }

# 第二个server块:域名HTTP服务(80端口)

server

{

        

# 监听80端口

      

listen

       80;

        

# 服务器域名

      

server_name

  zhongxuan2020.com;

# zywhbook.com;

# zhongxuan2020.com;

# root  /www/wwwroot/vue/dist;

#vite打包文件读取配置开始

      

# include mime.types;

      

# types 

      

# {

      

#     application/javascript mjs;

      

# }

      

#vite打包文件读取配置结束

      

# 主location块

      

location

 / {

            

# 反向代理到本机的8080端口(前端服务)

          

proxy_pass

http

://localhost:8080;

            

# 关闭代理重定向

    

proxy_redirect

 off;

            

# 设置代理头信息

    

proxy_set_header

Host 

$host;

    

proxy_set_header

X-Real-IP

$remote_addr;

    

proxy_set_header

X-Forwarded-For

$proxy_add_x_forwarded_for;

      }

       

# API接口代理

      

location

 /api/ {

            

# 代理到后端服务(8083端口)

proxy_pass

http

://localhost:8083/;
      

# 设置代理头信息

proxy_set_header

Host 

$host;

        

proxy_set_header

X-Real-IP

$remote_addr;

        

proxy_set_header

X-Forwarded-For

$proxy_add_x_forwarded_for;

proxy_set_header

X-Forwarded-Proto

$scheme;

      }

# 文件接口代理

    

location

 /api/

file 

{
   

# 代理到后端文件服务

proxy_pass

http

://localhost:8083/api/file;

            

# 设置代理头信息

proxy_set_header

Host 

$host;

proxy_set_header

X-Real-IP

$remote_addr;

        

proxy_set_header

X-Forwarded-For

$proxy_add_x_forwarded_for;

        

proxy_set_header

X-Forwarded-Proto

$scheme;

    }

#强制https   

# if ($scheme = http ) {
      

#   return 301 https://$server_name$request_uri;
# }  

  }
server

 {

# 监听443端口,启用SSL和HTTP/2
listen

443 ssl

 http2;

# 服务器域名

server_name

 zhongxuan2020.com;

# SSL证书路径(宝塔默认路径)

ssl_certificate

 /www/

server

/panel/vhost/cert/www.zhongxuan2020.com/fullchain.pem;

ssl_certificate_key

 /www/

server

/panel/vhost/cert/www.zhongxuan2020.com/privkey.pem;

# SSL协议配置

ssl_protocols

 TLSv1.

2 TLSv1

.3;

# 加密套件配置

ssl_ciphers

 EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:

!MD5

;

# 优先使用服务器端的加密套件

ssl_prefer_server_ciphers

 on;
# SSL会话缓存设置

ssl_session_cache

 shared:SSL:10m;

# SSL会话超时时间

ssl_session_timeout

 10m;

# 主location块

location

 / {

# 反向代理到本机的8080端口(前端服务)

proxy_pass

http

://localhost:8080;

            

# 关闭代理重定向

proxy_redirect

 off;

    
# 设置代理头信息

proxy_set_header

Host 

$host;

proxy_set_header

X-Real-IP

$remote_addr;

proxy_set_header

X-Forwarded-For

$proxy_add_x_forwarded_for;

      }

# API接口代理

location

 /api/ {

# 代理到后端服务(8083端口)

proxy_pass

http

://localhost:8083/;

            

# 设置代理头信息

        

proxy_set_header

Host 

$host;

        

proxy_set_header

X-Real-IP

$remote_addr;

        

proxy_set_header

X-Forwarded-For

$proxy_add_x_forwarded_for;

        

proxy_set_header

X-Forwarded-Proto

$scheme;

      }

# 文件接口代理

    

location

 /api/

file 

{

# 代理到后端文件服务

proxy_pass

http

://localhost:8083/api/file;

# 设置代理头信息

proxy_set_header

Host 

$host;

proxy_set_header

X-Real-IP

$remote_addr;

        

proxy_set_header

X-Forwarded-For

$proxy_add_x_forwarded_for;

        

proxy_set_header

X-Forwarded-Proto

$scheme;

    }

    

# 其他配置…

}
}

第三步 打包

3.1打包后台java项目

这里呢我们用idea打包maven项目,在此之前要把配置文件中的数据库链接修改为线上的地址, 打开idea找到右侧的maven选项卡 先双击“clean” 按钮 稍等片刻后 再 双击“package” 按钮  但看到控制台输出“BUILD SUCCESS”按钮后 就说明我们打包成功了

图片

图片

我们找到项目的target目录发现项目已经打包完成了 就是以jar为结尾的那个文件就是打包好的项目

图片

 然后我们将这个jar包拖入到宝塔面板中我们已经建立好的文件夹中  点击“开始上传” 等待上传完成即可  例如:novel里放的是后台系统 vue文件里放的是前端系统  宝塔的路径  /www/wwwroot/novel 

图片

图片

3.2打包前台vue项目

到前端项目的文件夹中打开cmd 运行 npm run build 命令 等待2-3分钟后 就会生成一个dist文件夹 将该文件夹压缩后上传到宝塔面板中我们已经建立好的文件夹中  点击“开始上传” 等待上传完成即可  例如:novel里放的是后台系统 vue文件里放的是前端系统

图片

图片

图片

第四步 添加java项目到宝塔面板

点击“网站”->“添加java项目” 如图配置即可 

项目路径 选择咱后台项目上传的路径双击进去后找到对应的jar包 例如:novel…..jar 点击确认即可

端口号 填写你在springboot项目中配置的端口号 例如:8083

图片

图片

注意事项:

部署java项目的时候要安装jdk ,这个时候我们点击“添加JDK信息”按钮.

图片

在弹出的方框中我们找到项目对应的jdk 点击右侧的“安装”按钮 等待片刻后即可成功安装jdk

图片

还有得放行8083端口号 到“安全”选项中 点击 “添加端口规则“ 在弹出的框中 填入8083 端口 点击”确定“即可

同理你要开启其他的端口,一定也要在这里记得添加端口,才能放行该段路口。

图片

最后一步是到 “网站”选项卡中 找到新添加的项目 点击“启动”按钮 后 稍等片刻 再点击右侧的“设置”按钮  

图片

在弹出的方框中 点击“日志管理”  当看到端口“8083” (我的项目的端口) 后就说明项目启动成功了

图片

赞(0)
未经允许不得转载:171主机测评 » 手把手教你将项目部署到服务器,一小时搞定。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址