前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >[Spring Boot] 从零开始搭建个人网站

[Spring Boot] 从零开始搭建个人网站

作者头像
架构探险之道
发布于 2019-07-25 08:57:35
发布于 2019-07-25 08:57:35
5.3K20
代码可运行
举报
文章被收录于专栏:架构探险之道架构探险之道
运行总次数:0
代码可运行

[Spring Boot] 从零开始搭建个人网站

@TOC

手机用户请横屏获取最佳阅读体验,REFERENCES中是本文参考的链接,如需要链接和更多资源,可以关注其他博客发布地址。

平台

地址

CSDN

https://blog.csdn.net/sinat_28690417

简书

https://www.jianshu.com/u/3032cc862300

个人博客

https://yiyuery.club

利用 NginxSpring Boot 微服务模块实现前后端分离式部署的个人网站搭建。

阅读前提

  • 了解Docker
  • 了解Nginx
  • 了解NodeJS
  • 了解Spring Boot
  • 了解Vue或其他前端相关知识

准备工作

  • 拥有一个云服务器(如阿里云 ECS 实例)
  • 下载一个开源静态的后台管理网站,并能够在其基础上完成新功能开发。

开始

Aliyun 服务器上运行 Docker

  • 通过终端连接服务器ssh root@x.x.x.x -p 22

.

  • 利用Docker拉取nginx镜像并启动

.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root:~/nginx$ docker search nginx
NAME                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
nginx                     Official build of Nginx.                        3260      [OK]
jwilder/nginx-proxy       Automated Nginx reverse proxy for docker c...   674                  [OK]
richarvey/nginx-php-fpm   Container running Nginx + PHP-FPM capable ...   207                  [OK]
million12/nginx-php       Nginx + PHP-FPM 5.5, 5.6, 7.0 (NG), CentOS...   67                   [OK]
maxexcloo/nginx-php       Docker framework container with Nginx and ...   57                   [OK]
...

拉取官方的镜像

docker pull nginx

等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@aliyun:~/nginx$ docker images nginx
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               latest              555bbd91e13c        3 days ago          182.8 MB

以下命令使用 NGINX 默认的配置来启动一个 Nginx 容器实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ docker run --name capsule-nginx-web -p 80:80 -d nginx

capsule-nginx-web 容器名称。 -d设置容器在在后台一直运行。 -p 端口进行映射,将本地 80 端口映射到容器内部的 80 端口。 执行以上命令会生成一串字符串,类似 6dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938,这个表示容器的 ID,一般可作为日志的文件名。

我们可以使用 docker ps 命令查看容器是否有在运行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@aliyun:docker ps
CONTAINER ID        IMAGE        ...               PORTS                  NAMES
6dd4380ba708        nginx        ...      0.0.0.0:80->80/tcp   capsule-nginx-web

PORTS 部分表示端口映射,阿里云服务器的 80 端口映射到容器内部的 80 端口。

在浏览器中打开 http://x.x.x.x/,效果如下:

.

Nginx 部署一个简单的静态界面

首先,创建目录 nginx, 用于存放后面的相关东西。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@aliyun: mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

拷贝容器内 Nginx 默认配置文件到本地当前目录下的 conf 目录,容器 ID 可以查看docker ps命令输入中的第一列:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@aliyun:docker cp 6dd4380ba708:/etc/nginx/nginx.conf ~/nginx/conf

www: 目录将映射为 nginx 容器配置的虚拟目录。 logs: 目录将映射为 nginx 容器的日志目录。 conf: 目录里的配置文件将映射为 nginx 容器的配置文件。 部署命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@aliyun: docker run -d -p 80:80 --name capsule-nginx-web -v ~/nginx/www:/usr/share/nginx/html -v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v ~/nginx/logs:/var/log/nginx nginx

命令说明:

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

--name capsule-nginx-web:将容器命名为 capsule-nginx-web。

-v ~/nginx/www:/usr/share/nginx/html:将我们自己创建的 www 目录挂载到容器的 /usr/share/nginx/html。

-v ~/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:将我们自己创建的 nginx.conf 挂载到容器的 /etc/nginx/nginx.conf。

-v ~/nginx/logs:/var/log/nginx:将我们自己创建的 logs 挂载到容器的 /var/log/nginx。

查看运行中容器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root@aliyun:~/nginx/www# docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
d0769a8e9f53        nginx               "nginx -g 'daemon of…"   4 days ago          Up 3 days           0.0.0.0:80->80/tcp   capsule-nginx-web

启动以上命令后进入 ~/nginx/www 目录:

cd ~/nginx/www

.

创建 index.html 文件,内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>首页</title>
</head>
<body>
    <h1>我的第一个标题</h1>
    <p>我的第一个段落。</p>
    <a href='capsule-agile-web'>capsule-agile-web</a>
</body>
</html>

image.png

如果要重新载入 NGINX 可以使用以下命令发送 HUP 信号到容器:

docker kill -s HUP container-ID

重启 NGINX 容器命令:

docker restart container-ID

基于 NodeJS 搭建的静态项目 Nginx 分离部署

效果展示

.

资源下载不唯一,在GitHub上随便找个自己喜欢的静态界面就好。 前文有提到需要了解VueNodeJs,前者是目前比较流行的MVVM前端框架,后者是前端渲染引擎。

可以通过 npm run build直接构建打包前端文件输出。

如果实在不会的话也没关系,正常的相对路径编写前端js、css、html即可,保证本地可以浏览器预览效果即可

静态资源准备好后,当然可以做些定制开发,比如数据图表。

.

前端打包文件上传GitHub仓库,在阿里云服务器中clone下来并放到对应位置

接下来就是nginx的静态资源映射了,进入挂载在容器外的nginx的配置文件中

.

.

接下来使用前文介绍的方法停止Nginx后重启即可,效果如下。

.

.

微服务实例(提供不同的API服务)可以利用 Spring Boot 来实现。

然后提供对应的服务API接口给前端模块使用,同样的,也是以GitHub为载体,上传后在Aliyun服务器中clone下来直接用命令启动即可。

Boot 项目启动命令:

java -jar xxx.jar &

备注: 直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉。以下方法可让jar运行后一直在后台运行。

.

对应Boot服务的接口也需要通过Nginx来实现转发

.

同理,配置修改后记得重启Nginx

如此一来,自己的网站就可以开始运行了。

总结

本文目的在于分享个人网站搭建的一个方案,适合有一定前后端开发基础的同学学习实践。然后我来列举下整体思路:

  • 准备一个Aliyun服务器,目的是当做服务运行载体
  • 准备一个前端资源模块,目的在于前端交互实现,选择自己擅长的前端框架,或是整合在微服务Boot项目中也是可以的,但是这样就不是前后端分离了,后期不好处理。
  • 准备多个Boot微服务实例,目的在于提供前端资源模块需要的API服务。
  • 通过NGINX反向代理,目的在于实现不同ip、端口、资源上下文之间的跨域访问问题。 综上,知识的积累源于平时的点点滴滴,要做到学以致用还是要不断地实践的!

备注: 关于Aliyun服务器中基础环境的一些配置、和阿里云安全规则配置等知识可以通过百度了解,主要是在Linux运行java应用的一些依赖安装、端口开放配置等,并不复杂。

REFRENCES

  • Docker 安装 Nginx

.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构探险之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
2 条评论
热度
最新
aliyun?
aliyun?
11点赞举报
yes
yes
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Docker实例,Nginx,Mysql,Tomcat,Redis的安装。
一、Install Engine X(Nginx)1、Install Engine X(Nginx)
微笑的小小刀
2019/08/26
1.5K0
Docker实例,Nginx,Mysql,Tomcat,Redis的安装。
springboot第26集:centos,docker
Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
达达前端
2023/10/08
2210
springboot第26集:centos,docker
全栈式部署:SpringCloud 微服务+Docker + Vue + nginx 前后端一站式部署
本文将带大家从一台全新的 CentOS 服务器开始,部署一套完整的前后端分离项目。操作步骤非常详细,新手友好型文章~
solocoder
2022/04/06
2.8K0
全栈式部署:SpringCloud 微服务+Docker + Vue + nginx 前后端一站式部署
docker必会知识(常用)
:Docker 镜像(Image),就相当于是一个 root 文件系统。比如官方镜像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系统的 root 文件系统。
编程张无忌
2021/01/26
2.3K0
docker必会知识(常用)
Docker
通过dockerfile构建镜像: docker build -f dockerfile文件路径 -t 镜像名称:版本
六个周
2022/10/28
6360
Docker
teprunner测试平台部署到Linux系统Docker
本文是一篇过渡,在进行用例管理模块开发之前,有必要把入门篇开发完成的代码部署到Linux系统Docker中,把部署流程走一遍,这个过程对后端设计有决定性影响。
dongfanger
2021/03/16
1.6K0
teprunner测试平台部署到Linux系统Docker
Docker安装Nginx
使用Docker来安装和运行Nginx具有多个显著的好处。以下是其中的一些主要优势:
会洗碗的CV工程师
2024/06/11
5390
Docker安装Nginx
Docker快速入门到项目部署
run 就是子命令。docker下面有很多子命令,run是其中一个。创建并运行一个容器。
用户11288958
2025/01/17
2860
Docker快速入门到项目部署
从零开始搭建WordPress个人网站
•初始化轻量应用服务器, 设置登录密码 比如iamzhaoolee•将域名 hk.v2fy.com 解析到 轻量应用服务器的ip•确认开启轻量应用服务器的80端口,63306端口,待会儿要用
zhaoolee
2020/04/10
1.1K0
从零开始搭建WordPress个人网站
制作nginx+php的docker镜像及其使用技巧
  docker镜像的制作有2种方法,一种是启动一个容器并在容器里操作,再将容器提交为一个新的镜像;一种是写Dockerfile,然后执行dockerfile由docker给我们一步步自动生成新的镜像;显然第二种方法更高大上,也更适合容器需要不断版本更替的场景。本人在安装nginx和php的时候,更习惯自己下载源码编译安装,所以编译安装这里写Dockerfile实在是繁琐,而且nginx+php并不是需要频发更替版本,通常在制作容器前,跟开发确定好版本号,制作好容器可以一直使用;所以以下的操作,前半部分,nginx和php的安装在容器里操作;最后让nginx和php同时启动起来则是写了一个Dockerfile。
菲宇
2019/06/12
3K1
【愚公系列】2023年08月 Docker容器 Nginx的搭建
Docker是一种虚拟化容器技术,可以将应用程序和其依赖的库、配置文件等打包成一个容器,进行分发部署。而Kubernetes (k8s) 是一个开源的容器编排平台,可以自动化部署、扩展和管理容器化应用程序。
愚公搬代码
2025/05/28
1100
【愚公系列】2023年08月 Docker容器 Nginx的搭建
Docker容器化部署,这些最佳实践你不可不知
Docker 作为一种开源的容器化技术,在当今的软件开发和部署领域中发挥着至关重要的作用。它具有诸多显著优势,为开发者和运维人员带来了极大的便利。
天创项目管理分享
2024/11/20
1.1K0
Docker容器化部署,这些最佳实践你不可不知
Docker基础与实战,看这一篇就够了
Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核的 cgroup,namespace,以及 AUFS 类的 Union FS 等技术,对进程进行封装隔离,属于 操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。
JAVA日知录
2019/11/28
1.2K0
Docker基础与实战,看这一篇就够了
轻量应用服务器实践:Nginx 安装指南
通过轻量应用服务器,我们可以实现多种用途,比如搭建个人网站或博客、创建云盘服务、构建私有聊天系统,或用于学习 Linux 系统操作等,其中,静态服务器的安装与管理也是常见需求之一。本文将具体介绍如何在轻量应用服务器上安装 Nginx 服务。
陈明勇
2024/11/11
3390
基于Docker的LNMP环境微服务搭建
Linux:Linux 操作系统 Nginx:Web 服务器 MariaDB:数据库 PHP:脚本语言
IT从业者张某某
2023/10/16
3180
基于Docker的LNMP环境微服务搭建
从零开始 - Docker部署前后端分离项目(三)
整个项目文件,里面有两个文件夹,nginx_docker用于存放前后端静态文件,XZAndroidPlatform是整个django项目文件。
梦无矶小仔
2022/08/22
2.1K0
从零开始 - Docker部署前后端分离项目(三)
使用Docker Compose、Nginx、SSH和Github Actions实现前端自动化部署测试机
显然这个流程不仅繁琐,而且效率也不高,开发每次发布都要耗费很长的时间在部署构建上面。
前端森林
2021/11/12
1.2K0
Docker Linux快速安装及Nginx部署
最近正在部署一套新的Linux服务器环境,基于Docker来部署所有的应用,顺便整理了一套经过验证的操作手册,以便大家遇到类似需求时,可以直接拿来用。
程序新视界
2024/01/06
7480
Docker Linux快速安装及Nginx部署
前端运维部署那些事
nrm 更多用于如果公司内网部署了私有仓库,也就是方便用nrm作来源切换,也有益于依赖的版本管理,如果你想搭建自己的私有仓库,可以使用verdaccio,可以看这个具体的教程 点我
树酱
2020/07/03
1.1K0
前端运维部署那些事
记录一次docker+jenkins+gitlab搭建内网开发环境
文本主要的内容是,利用Jenkins+gitlab+NGINX+MySQL+docker搭建一套公司内部级别的开发、测试系统。整个系统的流程图如下。
兔云小新LM
2020/05/19
3.5K0
相关推荐
Docker实例,Nginx,Mysql,Tomcat,Redis的安装。
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验