如何搭建一个自己的网站-项目篇

咪哥杂谈

如何搭建一个自己的网站-项目篇

本篇阅读时间约为 3 分钟。

1

前言

这周要来分享的是项目篇。

简单的来介绍,我们访问整个网页的流程是什么,从访问网页,背后经历了什么,以及我用到的技术栈。

2

访问网页的背后

在 2019 的时候,当初在写 Python 的 Flask 框架时,写到过一篇文章:访问网页的背后,究竟发生了什么?

当时的流程图是这样的:

如何搭建一个自己的网站-项目篇

但这次的网站服务有变动,如下:

如何搭建一个自己的网站-项目篇

这次后端服务选用的是 Java 来开发后台应用。

按照流程来简单的说下:

当通过浏览器访问域名时,会被 DNS 服务器解析成 ip,请求到相应的阿里云服务器,第一层走到的是 Nginx 软件。

Nginx 是一个负载均衡的软件,可以简单的理解为它可以将上层调用过来的请求转发给下层服务。

选择 Nginx 的目的没啥,就是为了单纯的玩玩,以目标来驱动学习,在之前的公司中并没有接触过 Nginx,都是别人配好的。

通过这次实战,对 Nginx 的配置了解了不少。

Nginx 目录下有个配置文件叫 nginx.conf,默认改它就好:

如何搭建一个自己的网站-项目篇

具体配置就不放了,知道它的主要作用是请求转发即可。

在后面,调用的是 jar 包提供的 web 服务。具体也不介绍,大家也不会感兴趣,大部分关注本号的都是学 Python 的。

整个 jar 包是用 docker 虚拟化来发布的。用 docker 也是为了玩技术。现在的一线互联网公司,大部分项目都会使用 docker 来虚拟化自己的微服务。

docker有 5 个好处:

持续集成、版本控制、可移植性、隔离性、安全性

个人项目其实完全没必要使用 docker 来部署,但如果你想让别人使用你的项目,可以利用 docker 打成镜像服务提供给别人。

别人想使用的话,只需要安装 docker 即可,到时候把你的镜像拉下来启动 docker 就能完成服务的迁移。非常的友好和便利。

最后,关于部署,如果是传统公司的运维同学,一定经历过自己写 shell 脚本的痛苦。

上家公司,我经历过自己用 Linux 脚本来人肉停止,更新,部署,启动项目的整个流程。不仅消耗精力,而且还浪费时间。

程序员,懒惰是第一生产力,那有能把流程自动化的工具,为什么不用呢?能把这一套流程自动化的工具,叫 Jenkins 。

如何搭建一个自己的网站-项目篇

可以通过配置,写好流程,当每次项目的代码有所变更,它会自动从 git 上拉取服务,然后按照脚本中写好的流程,自动停止服务,更新服务,启动服务。

配置:

如何搭建一个自己的网站-项目篇


以上,就是本项目涉及的东西,感兴趣的小伙伴可以自行参考下。不感兴趣的忽略本篇内容即可。

3

总结

本篇简单的介绍了我在这次建站中用到的一些技术和软件的选型。

简单的总结下涉及到的技术关键词:

  • java

  • Nginx

  • docker

  • Jenkins

有许多主流技术都是为了学习而选用的,其实像现在这种小服务,完全没必要搞这么复杂。

但是有目的地学习,有的时候学到的东西效果出奇的好,没有实践,理论上的东西永远记不住,编程就是这样。。。

多动手,多实践,多踩坑,才能对新东西快速的了解与熟悉。

那,本篇到这里就结束了,如果你有什么想沟通交流的,欢迎留言区评论探讨!


往期精彩回顾

如何搭建一个自己的网站-服务器篇

如何搭建一个自己的网站-项目篇