咪哥杂谈

本篇阅读时间约为 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

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

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

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

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


往期精彩回顾

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

如何搭建一个自己的网站-项目篇相关推荐

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

    咪哥杂谈 本篇阅读时间约为 5 分钟. 1 前言 上周我们讲了域名篇,当时我在评论区留言,说域名这个东西,注册的好也是能赚钱的. 结果周五下班的时候,阿里云域名公众号发了这么一条信息: 这意味着什么? ...

  2. 如何搭建一个自己的网站-域名篇(上)

    咪哥杂谈 本篇阅读时间约为 7 分钟. 1 前言 今天来给大家介绍,域名篇. 随着互联网时代来临,浏览器成为了日常必备的电脑工具. 而域名,但凡用过浏览器的朋友都知道它长什么样. 比如百度: 那我们用 ...

  3. 如何搭建一个自己的网站-优化篇

    咪哥杂谈 本篇阅读时间约为 3 分钟. 1 前言 这个主题一共写了一个多月,终于在今天迎来了终篇. 本主题的最后一个章节,网页优化篇,对历史文章感兴趣的朋友,可以点击文章上面的专辑部分查看历史内容. ...

  4. .net core 2.0学习记录(一):搭建一个.Net Core网站项目

    .Net Core开发可以使用Visual Studio 2017或者Visual Studio Code,下面使用Visual Studio 2017搭建一个.net Core MVC网站项目. 一 ...

  5. 【React进阶-1】从0搭建一个完整的React项目(入门篇)

    这篇文章带领大家从零开始手动撸一个React项目的基础框架,集成React全家桶.万字长文,请各位有足够的时间时再来阅读和学习. 概述 平时工作中一直在用React提供的脚手架工具搭建React项目, ...

  6. mysql网站如何搭建_如何搭建一个自己的网站(绝对详细~)

    前言 这篇文章教大家如何搭建一个自己的网站,平时我们在写项目的时候大部分都是由运维去部署发布的,可能对这方面不太关注.今天手把手教大家实现,我媳妇看了都学会了! 准备工具 一个可运行的java项目: ...

  7. 1-3.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之三

    在1-1.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之一 基础上进行如下操作: 所有路由不能全部都在myDjango下的urls.py路由文件中, ...

  8. 自定义服务器网址,小白新手如何在服务器上搭建一个自己的网站

    原标题:小白新手如何在服务器上搭建一个自己的网站 大家好,本文将带大家一步步从搭建服务器到建立运行一个网站后续会慢慢更新到渗透测试环境的搭建和对服务器网站渗透的步骤流程. 本文内容适合于新手学习,大牛 ...

  9. eclipse maven项目 class类部署不到tomcat下_Springboot介绍以及用Eclipse搭建一个简单的Springboot项目教程

    简述 本文主要介绍Springboot以及用Eclipse搭建一个简单的Springboot项目. Springboot简介 Springboot是由Pivotal团队提供的全新框架,其设计目的是用来 ...

  10. 利用脚手架工具搭建一个新的react项目

    利用脚手架工具搭建一个新的react项目 一,工程架构 1.使用的是create-react-app脚手架工具搭建的工程架构 npm install create-react-app -g全局安装 c ...

最新文章

  1. mysql 多行转换多列 列不确定_多行转多列,行数和列数不确定
  2. 用R语言分析我的fitbit计步数据
  3. SAP CRM Fiori应用Simulation pipeline里dualSlider的实现
  4. Ovum观察:运营商通信PaaS发展趋势强劲
  5. 使用UAA OAuth2授权服务器–客户端和资源
  6. python让你再也不为文章配图与素材发愁,让高清图片占满你的硬盘! #华为云·寻找黑马程序员#
  7. jieba源码分析(一)
  8. 退休后,你是因为什么还要继续工作?做原来的工作还是做新工作?
  9. docker学习(三) 安装docker的web可视化管理工具
  10. 学习pythonweb开发_Python学习--20 Web开发
  11. MAX30102脉搏血氧仪和心率传感器(一)驱动程序
  12. 新建工程,如何通过git上传到阿里云code
  13. java毕业设计——基于java+mysql+socket的即时通讯软件设计与实现(毕业论文+程序源码)——即时通讯软件
  14. 【hadoop权威指南第四版】第六章MR的工作原理【笔记+代码】
  15. Java编程那些事儿78——时间和日期处理
  16. 结合环境专业计算机思维论文,环境艺术设计思维的表达论文范文
  17. 不要小看了get 与set
  18. 计算机中桌面位置更改,电脑默认桌面文件夹位置修改不了怎么办
  19. 数据驱动运营,为门店开拓第二增长曲线。
  20. 我的第四个C语言:计算圆柱体的表面积和体积。

热门文章

  1. python shell运行_Python 执行 Shell 命令
  2. html中的form是空标签么,关于html 中form表单的内标签和使用
  3. 手写数字识别中多元分类原理_如何验签名真伪?法大大手写签名识别功能来了!...
  4. 安卓手机状态栏显示秒_如何让状态栏时间精确到秒显示
  5. hutool 读取扩展名文件_如何快速的搜索文件,Everything使用技巧
  6. top res mysql_Java应用Top命令RES内存占用高分析
  7. ngrok技术原理及下载使用
  8. iOS实例、类、元类
  9. 密码学基础(三):非对称加密(RSA算法原理)
  10. docker-compose进阶