【JNPF】window环境下前后端分离项目部署详解

@【JNPF】window环境下前后端分离项目部署详解

一、VUE前端发版部署

目在ideal软件中加载后,点击运行调试无问题时,则可以进行部署。
调试运行过程中的相关路由配置可以在前端vue文件中src/utils/define.js中进行。
前端项目启动时的端口配置在VUE项目根目录中vue.config.js中进行配置。如果需要进行http转https,则module.exports中设置https:true

1.发版

发版时访问后端需要根据发版服务器的IP或者域名进行相关配置,这里对VUE项目根目录.env.production的相关IP进行配置。
在windows系统中通过nginx软件进行前端发版配置,首先在ideal前端项目控制端口输入npm run build,在VUE文件下会生成dist文件。

2.部署

Nginx安装配置完成后,将dist文件存放在nginx/html文件的目录下。
Nginx目前推荐nginx-1.23.1版本下载,点击安装后,对conf/nginx.conf进行设置。
首先需要对ip/域名相关信息进行配置,这里以https相关域名地址为例,对SSL文件进行配置,然后对websocket相关信息进行配置,具体如下所示:

map $http_upgrade $connection_upgrade {
		default upgrade;
		'webscoket' upgrade;
}
server {
    listen       3000 ssl;
    server_name  iot.crchi.com;
    #charset koi8-r;
    #access_log  logs/host.access.log  main;
    location @router { 
    rewrite ^.*$ /index.html last; 
     }

    location / {
        root   html/dist;
		try_files $uri $uri/ @router;  
        index  index.html index.htm;
    }
    location /websocket {
    proxy_pass https://iot.crchi.com:3001/api/message/websocket;          
    proxy_http_version 1.1;           
    proxy_set_header Upgrade $http_upgrade;           
    proxy_set_header Connection "upgrade";          
    proxy_read_timeout 600s;         
    }
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
ssl_certificate    fullchain.pem;
ssl_certificate_key    privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";        

Nginx配置完成后,通过cmd在控制台程序中进入nginx安装文件夹,进行如下命令:
开启nginx:start nginx

查询nginx服务器是否启动成功:tasklist /fi "imagename eq nginx.exe"
关闭所有nginx服务器:taskkill /f /t /im nginx.exe

二、SPRINGBOOT后端发版部署

项目运行调试阶段,项目后端的端口号jnpf-admin/application-dev.yml与对应项目的前端vue文件中src/utils/define.js中端口号保持一致。

1.发版

调试运行无问题之后,进行发版工作。在jnpf-admin/application-dev.yml文件中配置相关的数据库(MYSQL、redis等)、文件模板等相关信息与要存放的服务器IP保持一致。
相关文件模板信息存放在服务器对应路径中。
在maven的jnpf-java-boot/lifecycle中进行相关配置,首先点击clean,在控制台中显示成功之后,然后点击package,在控制台中显示成功之后,可以在jnpf-java-boot/jnpf-admin/target中找到相关的jar包文件。

2.部署

将打包生成的jar文件包复制到服务器规划的文件夹中,在对应文件夹中构建启动项文件start.bat,例如:

title 智能运维系统 
java -jar jnpf-admin-3.3.1-RELEASE.jar

文件复制成功后,点击启动项文件启动项目。
在浏览器中输入相关的IP/域名信息确认是否连接成功。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
以下是一个简单的前后端分离登录页面的代码示例: 前端代码: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Login</title> <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.min.css"> </head> <body> <div class="container"> <div class="row justify-content-center"> <div class="col-md-6 mt-5"> <div class="card"> <div class="card-header"> <h4>Login</h4> </div> <div class="card-body"> <form id="login-form"> <div class="form-group"> <label for="username">Username</label> <input type="text" id="username" name="username" class="form-control" required> </div> <div class="form-group"> <label for="password">Password</label> <input type="password" id="password" name="password" class="form-control" required> </div> <button type="submit" class="btn btn-primary btn-block">Login</button> </form> </div> </div> </div> </div> </div> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.min.js"></script> <script> $(function () { $('#login-form').submit(function (event) { event.preventDefault(); var username = $('#username').val(); var password = $('#password').val(); $.ajax({ url: '/login', type: 'POST', data: { username: username, password: password }, success: function (data) { window.location.href = '/home'; }, error: function (xhr, status, error) { alert(xhr.responseText); } }); }); }); </script> </body> </html> ``` 后端代码(以Java Spring Boot为例): ```java @RestController public class LoginController { @PostMapping("/login") public ResponseEntity<String> login(@RequestBody LoginForm loginForm) { // TODO: check username and password in database if (loginForm.getUsername().equals("admin") && loginForm.getPassword().equals("admin")) { return ResponseEntity.ok("Login success"); } else { return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("Invalid username or password"); } } } ``` 其中,`LoginForm`是一个简单的Java类,用于封装前端提交的登录表单数据: ```java public class LoginForm { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` 需要注意的是,这只是一个简单的示例代码,实际项目中需要进行更多的安全性和健壮性考虑。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉鱼笑春风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值