后端部署(通用)

放行端口

  • 3306 MySQL
  • 6379 Redis
  • 15672 RabbitMQ web 面板
  • 5672 RabbitMQ
  • 22 端口 SSH
  • 443 HTTPS
  • 80 HTTP
  • 8848 Nacos
  • 9848 Nacos
  • 9849 Nacos
image-20241013000655616

还有服务器防火墙

image-20241015134440576

宝塔

安装 Java 环境

image-20240828111024249 image-20240828111206797

安装需要的 JDK ,这个项目安装 1.8.0_371 就可以

安装 MySQL

1、安装 MySQL

image-20241012235554319 image-20241012235637421

2、放行端口

image-20241013000655616

还有服务器防火墙

image-20241015134440576 image-20241013000847033

4、创建数据库

image-20241014202256613

5、允许远程连接

image-20241014202039444

6、使用测试工具进行连接 (以 IDEA 自带的为例)

image-20241015134629453 image.png

连接失败怎么办?

1、检查服务器端口是否放开

2、检查创建数据库的时候选择的 访问权限 是否是 所有人

3、检查用户名密码

image-20241015135401548

安装 Redis

1、安装 Redis

image-20241015132439667 image-20241015132518917

4、修改设置文件

image-20241015133641986

修改 bind 变成 0.0.0.0

然后设置 requirepass 这个就是密码

然后重载配置

image-20241015135039666

5、放行端口

image-20241015134115134

还有服务器防火墙

image-20241015134440576

6、尝试连接 (以 IDEA 自带的为例)

image-20241015134209097 image.png

不需要填写用户名

密码填写之际之前在服务器requirepass

7、连接成功

image.png

运行后端

上传 jar 包到服务器任意文件夹 比如 /www

image-20240814234039321

一定要注意,如果自己的使用的配置是 application-prod.yml 一定要在启动命令后面加上 --spring.profiles.active=prod !

image.png image-20240814234444592

Docker

前期准备

  • CentOS 安装 Docker 教程
  • Ubuntu 安装 Docker 教程
  • JAR 文件

1、切换到工作目录

text
复制代码
cd ~

创建一个单独的目录,存放部署相关的文件

text
复制代码
mkdir project && cd project

2、创建 Dockerfile 文件 + 上传 jar 包

创建 Dockerfile 文件

text
复制代码
touch Dockerfile

创建完成之后,使用 rz 命令、或者 WinScp 上传,上传到和 Dockerfile 同级目录下

3、创建 Dockerfile 文件

1)FROM docker 运行的环境

openjdk:8 指的是在 java8 环境下运行镜像

  • openjdk:8
  • openjdk:17

2)WORKDIR 工作目录

3)COPY 复制 Linux 系统文件到容器之中

4)CMD 运行 Jar 包的命令,配置文件生效的是 application-prod.yml

当然可以修改 --spring.profiles.active=prod 后面的 active=xxx 如果想要 application-test.yml 生效那么直接写 --spring.profiles.active=test

text
复制代码
FROM openjdk:8 WORKDIR /app # COPY ./user-center-backend-0.0.1-SNAPSHOT.jar ./app/application.jar COPY ./本地 jar 包的名称 ./app/application.jar CMD ["java","-jar","./app/application.jar","--spring.profiles.active=prod"]

2、执行 docker build

text
复制代码
docker build -t myapp:v1.0 .
  • -t--tag 的缩写,用于指定镜像名称和标签。比如 usercenter:v1.0
  • .:表示当前目录是构建上下文,Docker 会从当前目录读取 Dockerfile,并将该目录中的文件打包到镜像中
  • myapp 是镜像名称。
  • v1.0 是镜像标签(版本),你也可以用 latest 或其他标签。
image-20240827232904491

3、运行 docker 镜像

  • -p 8080:8080:将主机的端口 8080 映射到容器的端口 8080。

  • -t:分配一个伪终端(TTY),通常和交互模式一起使用,但这里是后台运行。

  • -d:让容器以 后台模式(detached)运行。

  • myapp:v1.0:指定要运行的 Docker 镜像名称和版本。

text
复制代码
docker run -p 8080:8080 -t -d myapp:v1.0
image-20240827233047875

4、查看运行是否成功

text
复制代码
docker ps
image-20240827233159530

5、查看 log

text
复制代码
docker logs -f CONTAINER ID 比如 docker logs -f 493820321e

CONTAINER ID 具体看 docker ps 里显示的 CONTAINER ID

RabbitMQ

Docker 安装就相对简单很多了!

1、下载 rabbitmq

text
复制代码
docker pull rabbitmq:3.12.13-management

2、运行 rabbitmq

text
复制代码
docker run -d --name=rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq:3.12.13-management
image-20241009213651818

3、登录 web 管理界面

地址: http://服务器IP:15672

账号、密码默认 guest

image-20241009214146062

4、看上面关于 创建用户&禁用默认用户远程访问 章节

Nacos

如果速度比较慢的话可以设置一下 register 教程

1、下载镜像

dockerfile
复制代码
docker pull nacos/nacos-server:v2.2.0
image-20241105000313361

2、查看 image

dockerfile
复制代码
docker images

3、初始化数据库

可以找到本地 nacos/conf/mysql-schema.sql

先创建数据,在使用数据库进行创建 sql

text
复制代码
CREATE DATABASE nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
image-20241105004509708

4、启动 Nacos

dockerfile
复制代码
docker run \ --name nacos \ -d \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ --restart=always \ -e MYSQL_SERVICE_USER=root \ -e MYSQL_SERVICE_PASSWORD=密码 \ -e MYSQL_SERVICE_HOST=127.0.0.1 \ -e MYSQL_SERVICE_DB_NAME=nacos_config \ -e MODE=standalone \ nacos/nacos-server:v2.2.0

启动成功!

image-20241105010150373

Elasticsearch

1、拉取 Docker 镜像

任意目录执行

text
复制代码
docker pull elasticsearch:{version}

比如:

text
复制代码
docker pull elasticsearch:7.17.9
image-20241113224600007

2、创建一个 network 方便后期 Elasticsearch 和 Kibana 通信

text
复制代码
docker network create elastic
image-20241113225558492

3、运行

text
复制代码
docker run \ --name elasticsearch \ --net elastic \ -p 9200:9200 \ -e discovery.type=single-node \ -e ES_JAVA_OPTS="-Xms1g -Xmx1g"\ -e xpack.security.enabled=true \ -it \ -d \ elasticsearch:{version}

比如

dock
复制代码
docker run \ --name elasticsearch \ --net elastic \ -p 9200:9200 \ -e discovery.type=single-node \ -e ES_JAVA_OPTS="-Xms1g -Xmx1g"\ -e xpack.security.enabled=true \ -it \ -d \ elasticsearch:7.17.9

4、修改账号密码

首先找到 elasticsearch 运行的 container id

text
复制代码
docker ps
image-20241114000841762

进入到容器之中

text
复制代码
docker exec -it CONTAINER ID /bin/bash

这个 CONTAINER ID 就看 docker ps 的 CONTAIONER ID

比如

text
复制代码
docker exec -it 7c6be20a14e5 /bin/bash

如果需要退出的话,直接输入 exit

text
复制代码
exit
Snipaste_2024-11-13_23-42-18

默认进入就是这个目录

image-20241113234752668

执行下面的命令

text
复制代码
bin/elasticsearch-setup-passwords interactive
image-20241113235048970

4、安装分词器

进入到容器之中

text
复制代码
docker exec -it CONTAINER ID /bin/bash

这个 CONTAINER ID 就看 docker ps 的 CONTAIONER ID

比如:

text
复制代码
docker exec -it 7c6be20a14e5 /bin/bash

下载地址:https://release.infinilabs.com/analysis-ik/stable

text
复制代码
bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/{version}/{version}.zip

这个 version 具体看自己安装的版本

比如:

text
复制代码
bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.9/elasticsearch-analysis-ik-7.17.9.zip

如果速度非常慢可以先本地下载下来然后使用 docker cp

text
复制代码
docker cp 文件 container_id:/usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.9.zip

找到对应目录,进入对应目录 /usr/share/elasticsearch/plugins

text
复制代码
rm -rf /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.9.zip
text
复制代码
unzip elasticsearch-analysis-ik-7.17.9.zip -d ik

最后别忘了删除 /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.9.zip

text
复制代码
cd /usr/share/elasticsearch/plugins

查看是否安装成功

text
复制代码
bin/elasticsearch-plugin list

5、最后重启使得配置生效

text
复制代码
docker restart elasticsearch

Liunx 服务器直接安装

RabbitMQ

安装 DNF

1、

text
复制代码
yum install epel-release
image-20241009203545454

2、

text
复制代码
yum install dnf
image-20241009203632789

安装成功

image-20241009203651254

安装 RabbitMQ

1、指定仓库

text
复制代码
sudo dnf install -y https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm

2、安装 rabbitmq 默认会安装 erlang

text
复制代码
sudo dnf install -y rabbitmq-server-3.3.5-34.el7
image-20241009211123061

3、开启 web 管理页面

text
复制代码
sudo rabbitmq-plugins enable rabbitmq_management

4、启动 RabbitMQ

text
复制代码
sudo systemctl start rabbitmq-server

5、查看运行状态

text
复制代码
systemctl status rabbitmq-server
image-20241009212252468

6、设置开机自启动

text
复制代码
sudo systemctl enable rabbitmq-server

登录 web 管理界面

http://服务器IP:15672

image-20241009214139890

默认账号、密码都是 guest

要是报错就自己再仔细看看是不是输入错误了

创建用户&禁用默认用户远程访问

  • 创建用户
  • 允许远程连接
image-20241009200510767 image-20241009200822956 image-20241009200851259

重要

关闭允许 guest 用户远程访问,为了安全

image-20241009201040420 image-20241009201140735

Nacos

安装依赖环境

Ubuntu

设置Ubuntu阿里镜像

1)更新系统软件包

text
复制代码
sudo apt-get update

2)安装对应的依赖 wget unzip Java

text
复制代码
sudo apt-get install wget unzip openjdk-8-jdk

CentOS

设置CentOS阿里镜像

1)更新系统软件包

text
复制代码
sudo yum update -y

2)安装对应的依赖 wget unzip Java

text
复制代码
sudo yum install -y wget unzip java-1.8.0-openjdk

下载 Nacos

1、下载文件

1)进入工作目录

text
复制代码
cd ~

2)创建目录

text
复制代码
mkdir nacos

3)进入目录,并且下载 zip 文件

text
复制代码
wget https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.zip

这个速度可能会比较慢,可以本地下载好的上传到服务器上

2、解压文件

text
复制代码
unzip nacos-server-2.2.0.zip
image-20241103170938289

3、设置数据库

先创建一个数据库

mysql
复制代码
CREATE DATABASE nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

然后在对应数据库下执行 nacos/conf/mysql-schema.sql 建表语句

然后修改 nacos/conf/application.properties 的内容

下面是源文件内容

image-20241103225328866

修改成

properties
复制代码
### If use MySQL as datasource: # spring.datasource.platform=mysql ### Count of DB: # db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=nacos # mysql 用户名 db.password.0=nacos # mysql 密码

4、进入 bin 目录启动

text
复制代码
cd nacos/bin
image-20241103171138299
text
复制代码
sudo bash startup.sh -m standalone
image-20241103171102914

这里如果是 Ubuntu 的话一定要用 bash startup.sh -m standalone 如果是 sh 会报错 Caused by: java.net.UnknownHostException: jmenv.tbsite.net at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)

5、访问 web 管理页面

首先要把服务器的 8848 打开,如果有宝塔 8848

http://服务器IP:8848/nacos/index.html

6、关闭 Nacos

text
复制代码
sudo bash shutdown.sh
image-20241103214451131

安装 Elasticsearch

1、更新安装包和下载依赖

Ubuntu

设置Ubuntu阿里镜像

1)更新系统软件包

text
复制代码
sudo apt-get update

2)安装对应的依赖 wget unzip

text
复制代码
sudo apt-get install wget tar unzip rpm openjdk-8-jdk

CentOS

设置CentOS阿里镜像

1)更新系统软件包

text
复制代码
sudo yum update -y

2)安装对应的依赖 wget unzip

text
复制代码
sudo yum install -y wget tar unzip rpm openjdk-8-jdk

2、下载 elasticsearch 7.x 版本

text
复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/{version}-amd64.deb

比如:

text
复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.9-amd64.deb

3、下载完成后,继续安装包

yml
复制代码
sudo dpkg -i elasticsearch-{version}-amd64.deb

比如:

text
复制代码
sudo dpkg -i elasticsearch-7.17.9-amd64.deb
image-20241113002329216

4、enable elasticsearch service 和 启动 elasticsearch service

text
复制代码
sudo systemctl enable elasticsearch.service sudo systemctl start elasticsearch.service
image-20241113002517242

5、修改 Ubuntu 配置文件

1)修改 network 把 127.0.0.1 改成 0.0.0.0

2)修改,如果没有的话就添加 discovery.type 写成 single-node

text
复制代码
vi /etc/elasticsearch/elasticsearch.yml
image-20241113003300120 image-20241113104450525

6、重启配置

text
复制代码
sudo systemctl restart elasticsearch.service

7、测试是否运行成功

text
复制代码
curl -X GET "localhost:9200/?pretty"
image-20241113004728562

8、添加安装分词器

text
复制代码
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/{version}/{version}.zip

比如:

text
复制代码
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.9/elasticsearch-analysis-ik-7.17.9.zip

速度很慢的话,就本地下载好,上传到 /usr/share/elasticsearch

text
复制代码
cd /usr/share/elasticsearch/plugins

上传到对应目录之后,进行解压

text
复制代码
unzip elasticsearch-analysis-ik-7.17.9.zip -d ik

解压完成之后需要删除 elasticsearch-analysis-ik-7.17.9.zip

text
复制代码
rm -f elasticsearch-analysis-ik-7.17.9.zip

查看是否安装成功

text
复制代码
./elasticsearch-plugin list

启用需要重新启动

text
复制代码
sudo systemctl restart elasticsearch.service

添加用户

  1. 官方文档
  2. 扩展 REST 添加用户链接
  3. 确保 elasticsearch 是运行状态

1、修改 /etc/elasticsearch/elasticsearch.yml 文件

在里面添加 xpack.security.enabled: true

text
复制代码
vi /etc/elasticsearch/elasticsearch.yml
image-20241113200522639

2、设置用户名密码

进入 /usr/share/elasticsearch/bin

text
复制代码
cd /usr/share/elasticsearch/bin
text
复制代码
./elasticsearch-setup-passwords interactive

设置 elastic, kibana, logstash_system,beats_system 这几个用户的密码

image-20241113203336673

如果想要修改这个 elastic 密码

text
复制代码
curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "修改后的密码" }'
image-20241113203923421

2、在服务器本执行

text
复制代码
curl -X POST "http://localhost:9200/_security/user/leikooo" -H "Content-Type: application/json" -u "elastic:leikooo" -d ' { "password" : "123456", "roles" : [ "admin"], "full_name" : "leikooo", "enabled": true }'
image-20241113204225770
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
leikooo
作者分享
Spring 团队开发者布道师 Josh Long,从 2011 年起每周二坚持写 This Week in Spring https://spring.io/authors/joshlong,大概 15 年半从未间断,到现在大概写了 800 期以上😱 大佬在采访里他说,写博客不是额外负担,而是逼自己整理每周所学的「强制机制」——反正本来就会刷社区动态,写出来既方便自己,也帮到别人。更重要的是 Spring 一直在变:微服务、AI……永远有新东西可聊,停一周就容易掉队。一旦养成习惯,坚持往往比重新开始更容易。 这种级别的大佬都还在用周更逼自己不掉队,我更没理由再拖了。还有之前左耳朵耗子大佬说的 ARTS 打卡,我老实说只撑了两周,真的需要捡起来了,加油✊
10
试了下 Grok CLI:curl -fsSL https://x.ai/cli/install.sh | bash 虽然功能不如 Claude Code 全,但能免费用 Grok 4.5 啊😍。一行 prompt 大概 3 分钟就生成出来了而且没有报错:" Three.js UMD 构建。正在实现完整的太阳系模拟(含自定义轨道控制,兼容本地打)"。 大伙可以访问试试:https://solar-system-seven-mocha.vercel.app/
4
彻底搞懂 Spring AI Tool Calling:从底层协议到源码执行全流程
7
别用 JWT 管理用户会话
9
没想到 Bot 占全球 HTML 流量的 50% 以上了,被这个比例给震惊到了。还有开发者在评论区说自己的网站「每天」访问量 250k 但是 Cloudflare 显示真实的用户只有 150 个😱 数据来源:https://radar.cloudflare.com/traffic#bot-vs-human
5
下载 APP