<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何搭建一個自己的網(wǎng)站-項目篇

          共 1307字,需瀏覽 3分鐘

           ·

          2020-07-22 07:10

          咪哥雜談


          0f086ab39f7bb90c8cc0a94c694ca9d7.webp

          本篇閱讀時間約為 3 分鐘。


          1

          前言


          這周要來分享的是項目篇。
          簡單的來介紹,我們訪問整個網(wǎng)頁的流程是什么,從訪問網(wǎng)頁,背后經(jīng)歷了什么,以及我用到的技術(shù)棧。



          2

          訪問網(wǎng)頁的背后


          在 2019 的時候,當(dāng)初在寫 Python 的 Flask 框架時,寫到過一篇文章:訪問網(wǎng)頁的背后,究竟發(fā)生了什么?
          當(dāng)時的流程圖是這樣的:

          fcfbe9228561c0191edf9723513c5df7.webp

          但這次的網(wǎng)站服務(wù)有變動,如下:

          dc5d8e56741e73b8513acb51bc9debaf.webp


          這次后端服務(wù)選用的是 Java 來開發(fā)后臺應(yīng)用。


          按照流程來簡單的說下:


          當(dāng)通過瀏覽器訪問域名時,會被 DNS 服務(wù)器解析成 ip,請求到相應(yīng)的阿里云服務(wù)器,第一層走到的是 Nginx 軟件。


          Nginx 是一個負載均衡的軟件,可以簡單的理解為它可以將上層調(diào)用過來的請求轉(zhuǎn)發(fā)給下層服務(wù)。


          選擇 Nginx 的目的沒啥,就是為了單純的玩玩,以目標(biāo)來驅(qū)動學(xué)習(xí),在之前的公司中并沒有接觸過 Nginx,都是別人配好的。


          通過這次實戰(zhàn),對 Nginx 的配置了解了不少。


          Nginx 目錄下有個配置文件叫 nginx.conf,默認改它就好:

          721e67938a08c7940918cc5c324b2239.webp

          具體配置就不放了,知道它的主要作用是請求轉(zhuǎn)發(fā)即可。


          在后面,調(diào)用的是 jar 包提供的 web 服務(wù)。具體也不介紹,大家也不會感興趣,大部分關(guān)注本號的都是學(xué) Python 的。


          整個 jar 包是用 docker 虛擬化來發(fā)布的。用 docker 也是為了玩技術(shù)。現(xiàn)在的一線互聯(lián)網(wǎng)公司,大部分項目都會使用 docker 來虛擬化自己的微服務(wù)。


          docker有 5 個好處:

          持續(xù)集成、版本控制、可移植性、隔離性、安全性


          個人項目其實完全沒必要使用 docker 來部署,但如果你想讓別人使用你的項目,可以利用 docker 打成鏡像服務(wù)提供給別人。


          別人想使用的話,只需要安裝 docker 即可,到時候把你的鏡像拉下來啟動 docker 就能完成服務(wù)的遷移。非常的友好和便利。


          最后,關(guān)于部署,如果是傳統(tǒng)公司的運維同學(xué),一定經(jīng)歷過自己寫 shell 腳本的痛苦。


          上家公司,我經(jīng)歷過自己用 Linux 腳本來人肉停止,更新,部署,啟動項目的整個流程。不僅消耗精力,而且還浪費時間。


          程序員,懶惰是第一生產(chǎn)力,那有能把流程自動化的工具,為什么不用呢?能把這一套流程自動化的工具,叫 Jenkins 。


          e3f817544a217357cead390959e1dabb.webp



          可以通過配置,寫好流程,當(dāng)每次項目的代碼有所變更,它會自動從 git 上拉取服務(wù),然后按照腳本中寫好的流程,自動停止服務(wù),更新服務(wù),啟動服務(wù)。


          配置:

          b87a011b2e8bb80dfb32ddf6089cc670.webp


          以上,就是本項目涉及的東西,感興趣的小伙伴可以自行參考下。不感興趣的忽略本篇內(nèi)容即可。



          3

          總結(jié)


          本篇簡單的介紹了我在這次建站中用到的一些技術(shù)和軟件的選型。


          簡單的總結(jié)下涉及到的技術(shù)關(guān)鍵詞:


          • java

          • Nginx

          • docker

          • Jenkins


          有許多主流技術(shù)都是為了學(xué)習(xí)而選用的,其實像現(xiàn)在這種小服務(wù),完全沒必要搞這么復(fù)雜。


          但是有目的地學(xué)習(xí),有的時候?qū)W到的東西效果出奇的好,沒有實踐,理論上的東西永遠記不住,編程就是這樣。。。


          多動手,多實踐,多踩坑,才能對新東西快速的了解與熟悉。


          那,本篇到這里就結(jié)束了,如果你有什么想溝通交流的,歡迎留言區(qū)評論探討!





          ▼往期精彩回顧▼如何搭建一個自己的網(wǎng)站-服務(wù)器篇




          瀏覽 64
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女拍拍拍拍拍拍拍拍 | 亚洲高清中文视频 | 成人操骚逼逼 | 成人免费性爱视频网站 | 免费黄色视频网站亚洲 |