网页五子棋——项目部署

目录

[安装 openjdk](#安装 openjdk)

[安装 MySQL](#安装 MySQL)

创建数据库和数据表

[修改 WebSocket 建立连接的 url](#修改 WebSocket 建立连接的 url)

上传项目


在项目实现完成后,我们就可以将项目部署到云服务器上(在这里使用的是 Ubuntu)

我们先在服务器上安装 jdk、mysql 等

更新软件包:

apt-get update

安装 openjdk

查找 jdk 包:

apt list | grep "jdk"

安装 jdk:

apt install openjdk-17-jdk

查看安装 jdk 版本:

java -version

安装 MySQL

查找安装包:

apt list | grep "mysql-server"

安装MySQL:

apt install mysql-server

查看 mysql 状态:

systemctl status mysql

连接 mysql 服务器:

mysql

修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

接下来,我们就可以开始部署项目了

部署步骤:

  1. 在云服务器上创建对应数据库 和 数据表

  2. 对 WebSocket 建立连接的 url 进行调整

  3. 打包,并上传项目

  4. 运行程序,并通过外网访问页面

创建数据库和数据表

首先,我们将之前写好的 sql 代码复制粘贴到服务器中运行:

查看创建情况:

修改 WebSocket 建立连接的 url

我们之前创建的连接是针对 服务器就在浏览器本机的情况下使用的

而当我们将服务器程序部署到其他机器上时,就不能使用 127.0.0.1 了,而是需要指定机器的 ip,也就是云服务器的外网 ip

我们对其进行调整,让 ip 能够适应不同的机器:

javascript 复制代码
        // 初始化 webSocket
        let webSocketUrl = 'ws://' + location.host + '/findMatch';
        let webSocket = new WebSocket(webSocketUrl);

由于 WebSocket 服务与页面在同一台机器上, 此时,无论部署到哪个机器上,都需要先访问到 游戏大厅/游戏房间 页面,此时,location.host 的 ip 与其相同,就解决了不同机器的适配 ip 问题

注意,游戏大厅 和 游戏房间 都需要进行修改

上传项目

我们先借助 maven 打包项目:

打包之前,我们需要修改 mysql 连接的密码为云服务器密码:

先执行 clean 操作,避免之前构建的残留文件导致问题:

双击 package 进行打包:

打包完成:

在 target 中找到打好的 jar 包:

此时,就可以将其上传到服务器上:

Xshell 中可以直接将文件拖到到窗口,从而达到上传文件的目的,若使用其他客户端,可能需要借助 lrzsz 命令

安装 lrzsz:

apt-get install lrzsz

上传文件:

sz filename

下载文件:

rz

传输完成, 查看上传的 jar 包:

开放端口号:

运行程序:

java -jar gobang_system-0.0.1-SNAPSHOT.jar

通过 http://IP:端口号/login.html 进行访问:

进行注册登录:

注册两个账号并登录,验证匹配和对战功能:

通过外网访问时,加载过程会较慢,可能会有明显的延时

我们将项目修改为后台运行,并将打印到的日志保存到文件中:

nohup java -jar gobang_system-0.0.1-SNAPSHOT.jar > /logs/gobang.log &

**nohup:**后台运行项目指令,即使终端被关闭,程序也不会被终止

/logs/gobang_system.log:设置输出日志到 /logs/gobang_system.log

&:将命令放到后台执行

访问 http://IP:端口号/login.html

相关推荐
caimo14 分钟前
Java无法访问网址出现Timeout但是浏览器和Postman可以
java·开发语言·postman
Deamon Tree24 分钟前
ElasticSearch架构和写入、更新、删除、查询的底层逻辑
java·大数据·elasticsearch·架构
一 乐44 分钟前
商城推荐系统|基于SprinBoot+vue的商城推荐系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·商城推荐系统
北极糊的狐1 小时前
IntelliJ IDEA插件:CodeGeeX 智能助手插件
java·ide·intellij-idea
悟能不能悟1 小时前
jdk25结构化并发和虚拟线程如何配合使用?有什么最佳实践?
java·开发语言
熙客1 小时前
Java8:Lambda表达式
java·开发语言
♡喜欢做梦1 小时前
Spring Web MVC 入门秘籍:从概念到实践的快速通道(上)
前端·spring·mvc
小咕聊编程1 小时前
【含文档+PPT+源码】基于java web的篮球馆管理系统系统的设计与实现
java·开发语言
后端小张2 小时前
【JAVA 进阶】Mybatis-Plus 实战使用与最佳实践
java·spring boot·spring·spring cloud·tomcat·mybatis·mybatis plus
崎岖Qiu2 小时前
【设计模式笔记07】:迪米特法则
java·笔记·设计模式·迪米特法则