如何搭建一个自己的网站-项目篇
咪哥杂谈
本篇阅读时间约为 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
有许多主流技术都是为了学习而选用的,其实像现在这种小服务,完全没必要搞这么复杂。
但是有目的地学习,有的时候学到的东西效果出奇的好,没有实践,理论上的东西永远记不住,编程就是这样。。。
多动手,多实践,多踩坑,才能对新东西快速的了解与熟悉。
那,本篇到这里就结束了,如果你有什么想沟通交流的,欢迎留言区评论探讨!