写目录

  • 项目发布的步骤
  • 一.服务器(阿里云的)
  • 1.百度搜索云翼计划
  • 2.购买云服务器ECS
  • 3.进行相关配置
  • 二.项目(我的是springboot项目)
  • 1.一个已经完成的项目
  • 2.进行相关配置
  • 3.打包
  • 三.连接服务器的准备工作
  • 四.服务器进行相关配置
  • a.安装docker(注意命令一行一行的输入,不要复制多行)
  • b1.用docker安装数据库mysql
  • b2.用docker安装redis
  • b3.用docker安装fastdfs
  • c.开始部署
  • 五.防火墙配置
  • 六.端口


项目发布的步骤

一.服务器(阿里云的)

1.百度搜索云翼计划

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HFpUp5H9-1620617030432)(http://qb4o2aa24.bkt.clouddn.com/1.png)]

2.购买云服务器ECS
  • 学生第一次有优惠
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pZqwBnim-1620617030435)(http://qb4o2aa24.bkt.clouddn.com/1.3.png)]
  • 购买云服务ECS
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DG8XlGnv-1620617030441)(http://qb4o2aa24.bkt.clouddn.com/1.2.png)]
  • 信息填写一下,我选的是centOS

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jKWCbzMu-1620617030444)(http://qb4o2aa24.bkt.clouddn.com/1.4.png)]

3.进行相关配置
  • 设置密码:控制台->云服务器ECS->实例->更多->密码/密钥->重置实例密码
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pzIRcSDT-1620617030445)(http://qb4o2aa24.bkt.clouddn.com/1.5.png)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lhPbPtHq-1620617030446)(http://qb4o2aa24.bkt.clouddn.com/1.9.png)]
  • 购买后进入控制台->云服务器ECS->实例->更多->网络和安全组->配置规则->手动添加,然后添加安全组,比如mysql的3306
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v3rrDS5o-1620617030447)(http://qb4o2aa24.bkt.clouddn.com/1.6.png)]
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KILOVnkT-1620617030449)(http://qb4o2aa24.bkt.clouddn.com/1.7.png)]

二.项目(我的是springboot项目)

1.一个已经完成的项目
2.进行相关配置

1.修改项目的配置文件(列如:修改运行环境,数据库连接的url,user,pwd等)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JyUxBLyM-1620617030450)(http://qb4o2aa24.bkt.clouddn.com/1.11.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bVwawZTq-1620617030451)(http://qb4o2aa24.bkt.clouddn.com/1.8.png)]

3.打包

1.以eclipse为例,右键项目->run as ->maven install(相当于maven clean + maven package)
2.在项目的target目录下找到.jar文件作为备用(如图:myblog-0.0.1-SNAPSHOT.jar)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hcgkK0Wj-1620617030453)(http://qb4o2aa24.bkt.clouddn.com/1.10.png)]

三.连接服务器的准备工作

1.进入后点xshell的下载
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YCjFSfwU-1620617030454)(http://qb4o2aa24.bkt.clouddn.com/1.13.png)]
2.然后点右边免费授权页面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0gdyjHTp-1620617030455)(http://qb4o2aa24.bkt.clouddn.com/1.14.png)]
3.然后填写信息(注意:点两者都要下载)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SCCKpNme-1620617030456)(http://qb4o2aa24.bkt.clouddn.com/1.15.png)]

4.之后你的邮箱会受到两个邮件,一个xshell的,一个xftp的,里面都有一个链接,点击就能免费下载了

  • 使用xshell连接服务器
    1.打开xsehll点击新建
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y9fpHtxc-1620617030457)(http://qb4o2aa24.bkt.clouddn.com/1.17.png)]
    2.填写信息
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lPyVmKMh-1620617030458)(http://qb4o2aa24.bkt.clouddn.com/1.16.png)]
名称:随便
协议:ssh
主机:服务器公网ip(阿里云的实例里能看到)
端口:22

然后点击连接,之后输入你的服务器用户名和密码就行了(用户名一般是root)

四.服务器进行相关配置

a.安装docker(注意命令一行一行的输入,不要复制多行)

点击进入docker官方安装教程

  • 1.安装包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
  • 2.配置仓库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io

下载完成后按y

  • 完成后重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl start docker
  • 验证是否成功(出现 Hello from Docker!则成功)
sudo docker run hello-world
b1.用docker安装数据库mysql

点击进入docker安装mysql官方教程

  • 1.这里我们拉取官方的最新版本的镜像
docker pull mysql:latest
  • 2.使用以下命令来查看是否已安装了 mysql:
docker images
  • 3.安装完成后,我们可以使用以下命令来运行 mysql 容器
  • 默认时区
$ docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

或者设置时区

$ docker run -itd --name mysql-test -e TZ=Asia/Shanghai -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

参数说明:

-p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
  • 4.验证是否安装成功
docker ps

java 无痕发布 javaee怎么发布项目_java 无痕发布

  • 5.1 本机可以通过 root 和密码 123456 访问 MySQL 服务。
  • java 无痕发布 javaee怎么发布项目_redis_02

  • 5.2 通过navicat进行远程连接访问数据库
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gn5hqWQ2-1620617030461)(http://qb4o2aa24.bkt.clouddn.com/1.12.png)]
连接名:随便填
主机:服务器公网ip(到阿里云的实例里可以看到)
端口:3306
用户名和密码:你刚刚设置的(用户名默认root)

之后可以建立一下你项目需要的数据库

b2.用docker安装redis

下载最新镜像

docker pull redis:latest

2.创建要挂载的地址,将redis.conf放到/home/redis/下

mkdir -p /home/redis/
mkdir -p /home/redis/data

3.修改redis.conf

  1. 注释 bind 127.0.0.1
  2. protected-mode yes 修改成 protected-mode no
  3. 添加 requirepass 你的密码 (注:不添加则可以无密码访问)
  4. 取消注释 notify-keyspace-events Ex 用于监听key过期事件

注:步骤1和步骤的2目的是为了远程连接redis,如果只需本地访问就无需修改

4.启动

docker run --restart=always  -d --privileged=true -p 6379:6379 -v /home/redis/redis.conf:/etc/redis/redis.conf -v /home/redis/data:/data --name redis redis:latest redis-server /etc/redis/redis.conf --appendonly yes

参数解释

--restart=always                                            -> 开机启动容器,容器异常自动重启
-d                                                          -> 以守护进程的方式启动容器
--privileged=true                                           -> 提升容器内权限
-p 6379:6379                                                -> 绑定宿主机端口
-v /home/app/redis/conf/redis.conf:/etc/redis/redis.conf    -> 映射配置文件
-v /home/app/redis/data:/data                               -> 映射数据目录
--name redis                                                -> 指定容器名称
--appendonly yes                                            -> 开启数据持久化
b3.用docker安装fastdfs

1.拉取镜像,这个镜像包含nginx和相关配置

docker pull delron/fastdfs

2.创建目录

mkdir -p /home/fastdfs/storage
mkdir -p /home/fastdfs/conf

3.运行容器

docker run -d --network=host --name tracker -v /home/fastdfs/storage:/var/fdfs delron/fastdfs tracker

4.复制配置文件

docker cp storage:/etc/fdfs/storage .conf /home/fastdfs/conf/
docker cp storage:/usr/local/nginx/conf/nginx.conf /home/fastdfs/conf/

5.修改/storage.conf

vi /home/fastdfs/conf/storage.conf

6.修改nginx.conf

vi /home/fastdfs/conf/nginx.conf

7.删除容器

1.获得容器id
docker ps 
2.停止容器
docker stop 容器id
3.删除容器
docker rm 容器id

8.正式启动 tracker

docker run -d --network=host --name tracker -v /home/fastdfs/storage:/var/fdfs -v /home/fastdfs/conf/storage.conf:/etc/fdfs/storage.conf:ro -v /home/fastdfs/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf:ro delron/fastdfs tracker

说明:

– name tracker 表示给当前容器命名
第一个 -v 将主机的 /home/fastdfs/storage 目录映射到 容器的 /var/fdfs目录中,此目录用于存储文件
第二个 -v 将主机的 storage.conf 配置文件映射到容器中的 storage.conf,这样启动时就会读主机配置
第三个 -v 将主机nginx.conf 映射到容器中,启动nginx时会读主机配置文件
delron/fastdfs tracker 指定启动的镜像

9.正式启动storage

docker run -d --network=host --name storage -v /home/fastdfs/storage:/var/fdfs -v /home/fastdfs/conf/storage.conf:/etc/fdfs/storage.conf:ro -v /home/fastdfs/conf/nginx.conf:/usr/local/nginx/conf/nginx.conf:ro -e TRACKER_SERVER=192.168.102.10:22122 -e GROUP_NAME=group1 delron/fastdfs storage

说明:

–name storage 和 前 3个 -v 和上面一样的意思
-e TRACKER_SERVER=192.168.102.10:22122 表示fastdfs 用的端口和主机映射ip,此处把ip改成自己主机ip即可
c.开始部署

1.创建文件夹

mkdir /home/docker
注意: /xx/xxx是自己命名的

2.点击xshell上的xftp
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D50Y7rxP-1620617030462)(http://qb4o2aa24.bkt.clouddn.com/1.19.png)]

3.进入
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-07n6fR6Z-1620617030463)(http://qb4o2aa24.bkt.clouddn.com/1.18.png)]

4.找到刚创建的文件夹,把准备好的.jar拖到右边文件夹
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b8QYnVWH-1620617030464)(http://qb4o2aa24.bkt.clouddn.com/1.20.png)]

5.切换到文件夹路径下,编写Dockerfile

切换到文件夹路径下:
cd /home/docker

编写Dockerfile:
vi Dockerfile
  • 注意:进入文本后
按 i 开始编写模式
按 Esc 退出编写模式
按 Esc 后,输入 :wq 保存并退出文本
  • 编写内容:
FROM java:8
ADD myblog-0.0.1-SNAPSHOT.jar /blog.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/blog.jar"]
  • 内容解释:
java:8 jdk版本
myblog-0.0.1-SNAPSHOT.jar: jar包名称
ADD myblog-0.0.1-SNAPSHOT.jar /blog.jar: 代表把jar包拷贝到容器
ENTRYPOINT: 执行jar文件
EXPOSE 8080: 项目访问的端口号
  • 注意:你也可以在xftp中像使用windows一样在文件夹中编写文本

6.生成docker镜像

docker build -t blog:1.0 .

. 代表当前目录下、blog:1.0 是名字

也可以这样:

docker build -t blog:1.0 /home/docker

7.查看是否成功生成镜像

docker images

出现了blog:1.0就代表成功了

8.运行镜像

docker run --name blog1.0 -d -p 80:8080 blog:1.0

运行成功后你会得到一个容器id(可以保存一下)

9.现在配置好防火墙和阿里云安全组的话 ,你就可以在浏览器中输入你的服务器外网ip进行访问啦!

10.如果网站运行出错了

docker logs 容器id

你就会得到错误日志,就可以到项目里进行改错,改完然后再重复上面的步骤.

11.配置网站域名
可以到我的另一篇文章里看:
点击进入关于域名

五.防火墙配置

开启端口(以80为例子,其他都是这样)

firewall-cmd --zone=public --add-port=80/tcp --permanent

查询端口号80 是否开启:

firewall-cmd --query-port=80/tcp

重启防火墙:

firewall-cmd --reload

查询有哪些端口是开启的:

firewall-cmd --list-port

命令含义:

–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

还需要开启阿里云安全组

六.端口

查看在使用的端口

netstat   -nultp