<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>

          不就部署個(gè)網(wǎng)站么?還能玩出花來?

          共 2272字,需瀏覽 5分鐘

           ·

          2022-04-17 08:30

          大家好,我是魚皮,不知道朋友們有沒有試著部署過自己開發(fā)的網(wǎng)站呢?

          其實(shí)部署網(wǎng)站非常簡單,而且有非常多的花樣。這篇文章就給大家分享幾種主流的前端 / 后端項(xiàng)目部署方式吧!

          9df0ca7623c07f0da19df06db56f5655.webp

          前端部署

          對于前端項(xiàng)目,打包之后往往是一個(gè)目錄,目錄中包含 index.html(入口文件)、css、js 等等。

          14cd8aacbb360dccb8b8257d47734b4d.webp

          那么我們要做的事情其實(shí)就是想辦法 讓用戶訪問到這些文件 ,包含兩個(gè)關(guān)鍵的問題:

          1. 文件存放到哪里?
          2. 怎么提供文件訪問能力?

          圍繞這兩個(gè)問題,常見的部署方式有以下五種。

          1. web 服務(wù)器

          將文件放到遠(yuǎn)程服務(wù)器上(沒有服務(wù)器也可以在自己電腦上部署),然后通過 Nginx、Apache、Tomcat 等 web 服務(wù)器提供網(wǎng)頁文件訪問能力。

          你可以自行安裝上述 web 服務(wù)器,然后修改其配置文件,指定用戶通過 哪個(gè)端口 訪問到 哪個(gè)目錄(網(wǎng)頁文件所在目錄),Nginx 示例配置如下:

          server {
          listen 80; # 監(jiān)聽端口,http 80 https 443
          server_name dogyupi.com; # 域名
          index index.html; # 主頁文件
          root /web/xxx; # 網(wǎng)頁文件所在目錄
          }

          然后用戶訪問 dogyupi.com 就能訪問到網(wǎng)頁了。

          2. 寶塔 Linux

          這種方式部署網(wǎng)站也是需要 web 服務(wù)器的,只不過通過使用寶塔 Linux,能夠可視化地安裝和管理 Linux 服務(wù)器上的軟件,比如一鍵安裝 Nginx、更方便地管理配置:

          f33cf73554e6375c5c6d845034b711c0.webp

          現(xiàn)在我上線訪問量不大的新網(wǎng)站時(shí),一般都會安裝寶塔 Linux,的確非常方便省事兒。

          3. 靜態(tài)網(wǎng)站托管

          如果我們沒有完整的服務(wù)器,也可以把網(wǎng)頁文件放到靜態(tài)網(wǎng)站托管平臺上,比如 GitHub Pages、Gitee Pages、騰訊云靜態(tài)網(wǎng)站托管等。

          下圖是 GitHub Pages 提供的網(wǎng)站訪問能力,把代碼上傳到指定分支、指定代碼文件所在目錄即可:

          9b11ef3dccfd587530d719c8252b0c6a.webp

          你甚至可以把網(wǎng)頁文件像圖片文件一樣直接扔到云服務(wù)商提供的對象存儲平臺上(還可以搭配 CDN 加個(gè)速)。但是,這種方式僅限于靜態(tài)頁面(必須每個(gè)頁面路由都有對應(yīng)的 html 文件),否則可能會出現(xiàn)刷新頁面 404 的情況。

          4. 容器

          通過 Docker 容器技術(shù),我們可以把 web 服務(wù)器以及網(wǎng)頁文件打包成一個(gè)鏡像,然后在服務(wù)器上拉取鏡像并執(zhí)行就好。

          大致的步驟就是在網(wǎng)上 copy 一個(gè) Dockerfile 文件,然后執(zhí)行 docker build 命令構(gòu)建鏡像,最后 docker run 命令執(zhí)行。

          80e653df363235d0262769e4547bd04a.webp

          5. 容器托管平臺

          如果使用上一步提到的部署方式,我們每次代碼更新后都要手動去執(zhí)行鏡像構(gòu)建、關(guān)閉老容器、啟動新容器,非常麻煩,而且沒法對容器進(jìn)行統(tǒng)一的管理。所以更方便的方式是使用云服務(wù)商提供的容器托管平臺(比如微信云托管),可以實(shí)現(xiàn)自動化構(gòu)建以及發(fā)布版本化等一系列強(qiáng)大的功能。

          3687af49daee215157d7a8aa3554c22b.webp微信云托管

          后端部署

          后端項(xiàng)目我就拿 Java 來舉例吧,打包后一般有兩種產(chǎn)物形式:依賴 web 服務(wù)器部署的 war 包,以及內(nèi)嵌 web 服務(wù)器 & 可直接運(yùn)行的 jar 包。對應(yīng)的部署方式也不同,加起來共有 5 種。

          1. web 服務(wù)器

          如果你要部署 war 包,最常見的 web 服務(wù)器當(dāng)屬 tomcat 和 jetty 了,和部署前端項(xiàng)目一樣,先手動安裝 tomcat,然后改幾行配置文件,讓 tomcat 能找到 war 包即可。注意盡量不要暴露 tomcat 提供的應(yīng)用管理頁面哦!

          b350f92d7a7a357beeb265ea23cd2089.webpTomcat 應(yīng)用管理頁面

          2. 直接啟動

          如果你使用 SpringBoot 框架開發(fā),打包之后得到的是 jar 包,內(nèi)置了 tomcat 等 web 服務(wù)器,因此只需要用一行命令啟動 jar 包即可,比如:

          java?-jar?app.jar?--spring.profiles.active=prod

          如果想在后臺運(yùn)行 jar 包,那就給命令開頭補(bǔ)充 nohup ,結(jié)尾補(bǔ)充 ?& 。

          3. 寶塔面板

          和前端部署一樣,如果你懶得自己在服務(wù)器上安裝 java、maven、tomcat 等環(huán)境,可以直接用寶塔面板來幫你安裝:

          42843cd2f7fea6bb899982a67308a866.webp寶塔面板安裝軟件

          4. 容器

          使用 Docker 容器技術(shù),理論上可以封裝任何環(huán)境和應(yīng)用,對于后端 Java 項(xiàng)目來說,把 Java 環(huán)境、Maven 和 jar 包封裝成一個(gè)鏡像就好了。

          在寫 Dockerfile 時(shí),可以直接使用 maven:3.5-jdk-8-alpine 這種基礎(chǔ)鏡像,自帶了 jdk 和 maven,省去了自己寫安裝腳本的麻煩。

          當(dāng)然,有需要的話,你還可以在 Java 容器前加個(gè) Nginx 負(fù)載均衡~

          3d376a29c79a0e91de02e46b82f75477.webp

          5. 容器托管平臺

          只要是容器,就可以放到容器托管平臺進(jìn)行管理,對于后端應(yīng)用來說也是如此,不再贅述~



          扯了那么多種部署方式,你最喜歡或者最常用的網(wǎng)站部署方式是什么呢?

          圖文的方式介紹起來比較麻煩,今天晚上?我會在自己的 編程知識星球 內(nèi)直播帶大家學(xué)習(xí)幾種前后端項(xiàng)目部署的方式,把之前星球內(nèi)全程直播帶大家開發(fā)的用戶中心項(xiàng)目搞上線!

          歡迎大家加入星球吧~ 和近 6000 名小伙伴們一起交流學(xué)習(xí),向魚皮等大廠同學(xué) 1 對 1 提問、幫你定制學(xué)習(xí)計(jì)劃不迷茫、跟著魚皮直播做項(xiàng)目提升編程能力(往期直播可回看)、領(lǐng)取海量優(yōu)質(zhì)編程資源等等。

          只歡迎想進(jìn)步的同學(xué),掃碼限時(shí)優(yōu)惠加入:


          往期推薦

          怎么做個(gè)不用網(wǎng)絡(luò)的軟件?

          都這個(gè)點(diǎn)兒了,這幫人竟然在。。。

          做了個(gè)找打的網(wǎng)站,拿去玩!

          字節(jié)跳動最愛考的 64 道算法題(JS版)

          5000 人,炸了!

          瀏覽 114
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  色婷婷在线视频精品导航 | 91视频久久久久久久久久久久 | 亚洲AV无码乱码国产精品 | 天天大逼视频 | 爆乳一级 |