前后端分离项目部署

前后端分离项目部署

环境

首先是介绍一下使用到的软件环境

  • 开发环境:Idea2020、Vscode、jdk1.8
  • 部署环境:centos7、Nginx、jdk1.8

项目

前端项目为Web,后端项目为Server,

  • 调试:在本地调试时采用的ip为localhost,端口为:前端8081、后端8080
  • 部署:需要将请求ip替换为实际的主机域名,前端端口设置为80,后端端口设置为23333(按个人喜好),反向代理端口22222

打包

前端:

  • 在前端项目运行:npm run build
  • 成功构建后,在你的前端项目下会出现一个dist文件夹,里面就是前端的项目啦,然后需要拷贝在服务器上,因为是传入linux服务器,自行选择方便快捷的方式即可,这里假设前端项目存放在了/usr/project/web/dist

后端:

  • 首先必须!!!将编码格式更改为UTF-8,感谢先贤提供的经验:启动SpringBoot报错Input length = 1解决办法_xsqsharp的博客-CSDN博客,最好是在开始写项目之前就进行更改,如果是在之后更改,需要检查配置文件和依赖文件中的中文,看一下是否存在乱码,如果之前这里是GBK的编码格式,需要将乱码的重新修改

    在这里插入图片描述

  • 然后可以使用maven来进行打包,
    在这里插入图片描述

  • 提示:BUILD SUCCESS 则打包完成,然后这里的输出路径可以找到生成的jar包
    在这里插入图片描述

  • 然后将此jar包传输在linux的/usr/project/server/路径

配置Nginx服务

为什么采用nginx呢?因为可以直接通过nginx的配置让前端项目启动,而且在正常的网站建设中我们是需要配置SSL服务的,就是HTTPS加密,在nginx中可以很方便的配置,并且还能使用反向代理,让我们的后端接口也能被HTTPS代理,就不会担心报错此接口不安全啦

nginx的配置文件:

  • 首先我们得找到这个文件在哪里,这里已经默认你安装好了nginx,使用nginx -t,这会列出当前nginx所使用得配置文件

    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    

    你可以在此看到nginx的配置文件路径

  • 首先我们需要配置前端端口:

    server {
            listen 443 ssl;
            server_name 你的域名;
            ssl_certificate  /usr/local/nginx/server.crt;
            ssl_certificate_key  /usr/local/nginx/server.key; 
            ssl_session_timeout 5m;  
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置 
            ssl_prefer_server_ciphers on;
            
            location / {
    // 这里是配置你的前端文件夹路径
            root /usr/project/web/dist;
            try_files $uri $uri/ /index.html;
        }
    }
    

    配置80端口,将http请求也转接为https:

    server {
        listen 80;
        #填写绑定证书的域名
        server_name 你的域名; 
        #把http的域名请求转成https
        return 301 https://$host$request_uri; 
    }
    
  • 然后是后端代理转发:

    server {
            listen 22222 ssl;
            server_name 你的域名;
            ssl_certificate  /usr/local/nginx/server.crt;
            ssl_certificate_key  /usr/local/nginx/server.key; 
            ssl_session_timeout 5m;  
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置 
            ssl_prefer_server_ciphers on;
            
            location / {
            proxy_pass http://127.0.0.1:23333;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
        
    }
    

部署后端

前端代码我们已经通过nginx部署完成,后端代码,我们因为是jar包,也可以直接通过java环境运行,

  • 运行
    前台运行:会在当前得窗口中运行jar包,如果关闭了链接这个服务也被停止

    java -jar application.jar
    

    后台运行:将会将其作为后台服务运行,当前链接得关闭不会影响其运行

    nohup java -jar application.jar > output.log 2>&1 &
    
  • 杀死服务:当我们使用后台服务时,我们如果要关闭此服务,我们可以使用以下命令
    端口占用服务:

    lsof -i :23333        //查看23333端口的占用服务
    

    杀死该服务

    kill <PID>      //我们通过上面的查看服务,可以得到一个PID,我们使用kill pid就可以干掉他
    

防火墙

至此,我们得项目已经全部启动了,但是我们通过域名还是无法访问我们得网站,linux系统的防火墙并没有开启此端口,于是我们需要开放用到的端口

  • 开放端口

    sudo firewall-cmd --zone=public --add-port=23333/tcp --permanent   //这里以23333端口为例
    
  • 重新载入设置

    sudo firewall-cmd --reload
    

数据库移动

移动:您在开发中使用数据的结构,应该移动到生产服务器上,

  • mysqldump -u root -p 数据库名 > 备份文件名.sql
    运行备份文件
  • 首先为了确保你的数据库中是没有当前操作的数据库,我们得先删除它mysql -u root -p -e "DROP DATABASE IF EXISTS huistarapps; CREATE DATABASE huistarapps;"
  • 运行:mysql -u root -p 数据库名< 备份文件名.sql

在每次执行过程中,均会要求您输入一遍密码!

END

现在,你可以通过域名来访问你的网站啦,因为我们将前端部署在了80端口,而在web服务中,80端口当作为网站时可以省略,于是我们就直接访问域名即刻,后端的接口也可以通过域名访问,记得加上22222端口,因为我们将22222的转接到了服务器的23333端口。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
开发后端项目时,可以使用VSCode作为编辑工具。首先,需要将前端和后端的代码分别合并到一个项目中。可以使用前端项目中的自动打包工具(比如Vue的自动打包)将前端代码打包成静态文件。然后,可以将前端项目后端项目分别导入到VSCode中。 对于前端项目,可以进入前端根目录下,使用npm run build命令进行打包。这将生成一个静态文件夹,包含了所有的前端代码和资源文件。 对于后端项目,可以在VSCode中直接打开后端项目文件夹。可以配置Java环境以支持Java代码的编辑和调试。可以参考墨城之左的博客或其他资源中关于VSCode配置Java环境的指南。 此外,还可以使用VSCode的Lombok Annotations插件来简化POJO类的编写。这个插件可以提供一些注解,自动为POJO类生成一些常用的方法和属性。 总结起来,使用VSCode可以方便地进行前后端开发。在开发过程中,需要将前端代码打包成静态文件,并将前端项目后端项目分别导入到VSCode中。可以配置Java环境以支持Java代码的编辑和调试,并使用Lombok Annotations插件简化POJO类的编写。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [超详细Django+vue+vscode前后端分离搭建](https://blog.csdn.net/weixin_43883625/article/details/130190149)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Vscode同时开发后端](https://blog.csdn.net/weixin_40283846/article/details/105317361)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值