最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用docker-compsoe部署前后端分離的項(xiàng)目方法

 更新時(shí)間:2019年08月29日 08:25:57   作者:寫(xiě)夜子  
這篇文章主要介紹了利用docker-compsoe部署前后端分離的項(xiàng)目方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

說(shuō)在前面

我們都知道,docker可以實(shí)現(xiàn)很簡(jiǎn)便的部署環(huán)境。現(xiàn)在我們有一個(gè)前后端分離的項(xiàng)目,前端基于Vue開(kāi)發(fā)、利用Webpakc打包為dist文件夾。后端則是一個(gè)Node.js服務(wù),提供API接口,前端和后端是分離的。所以我們肯定是前端項(xiàng)目一個(gè)container,后臺(tái)項(xiàng)目也是一個(gè)container。那么如果是在生產(chǎn)環(huán)境,就會(huì)產(chǎn)生跨域問(wèn)題。前端的請(qǐng)求要反向代理到后臺(tái)。大家肯定首先想到的就是使用 Nginx 設(shè)置 proxy_pass 。是的沒(méi)有錯(cuò)。那么我們有了這些想法。我們?nèi)绾瓮ㄟ^(guò) docker-compose 來(lái)實(shí)現(xiàn)呢?

開(kāi)始動(dòng)手

其實(shí)我也是才開(kāi)始了解docker的。所以有很多不明白的地方,例如在docker里面,是通過(guò)image生成一個(gè)container,那么這個(gè)container,就可以當(dāng)作是一個(gè)獨(dú)立的系統(tǒng),這個(gè)系統(tǒng)也就有自己獨(dú)立的端口。那么就像我們剛剛那樣的需求,假設(shè)我們的前端在 container1 里面暴露80端口,同時(shí)映射到宿主機(jī)的80端口,后端在 container2 里面暴露3000端口,同時(shí)映射到宿主機(jī)的3000端口。那我們反向代理請(qǐng)求的時(shí)候,是通過(guò)宿主機(jī)來(lái)反向代理呢,還是通過(guò)container來(lái)實(shí)現(xiàn)呢?我在網(wǎng)上查閱并學(xué)習(xí)了很多其他大佬的文章,還有官網(wǎng)的文檔。發(fā)現(xiàn)直接通過(guò)container就可以實(shí)現(xiàn)這種需求。為什么呢?因?yàn)閐ocker-compose,會(huì)將所有的container構(gòu)建在同一網(wǎng)絡(luò)下,我們要找其他container,我們只需通過(guò)docker-compose里面的 service name 即可找到。 下面先來(lái)看看我們的目錄:

vueMusic
 ├─ .git
 ├─ .gitignore
 ├─ LICENSE
 ├─ README.md
 ├─ babel.config.js
 ├─ dist
 ├─ docker-compose.yml
 ├─ docs
 ├─ nginx.conf
 ├─ package-lock.json
 ├─ package.json
 ├─ public
 ├─ server
 ├─ src
 └─ vue.config.js

dist是我們的前端項(xiàng)目,server是我們的后端項(xiàng)目。 下面再來(lái)看看我們的 docker-compose.yml :

version: '3'
 services:
 music-web: #前端項(xiàng)目的service name
   container_name: 'music-web-container' #容器名稱(chēng)
   image: nginx #指定鏡像
   restart: always
   ports:
   - 80:80
   volumes: 
   - ./nginx.conf:/etc/nginx/nginx.conf #掛載nginx配置
   - ./dist:/usr/share/nginx/html/  #掛載項(xiàng)目
   depends_on:
   - music-server
 music-server:  #后端項(xiàng)目的service name
   container_name: 'music-server-container'
   build: ./server #根據(jù)server目錄下面的Dockerfile構(gòu)建鏡像
   restart: always
   expose:
   - 3000

可以看見(jiàn),我們通過(guò) volumes 屬性將宿主機(jī)的 nginx.conf 掛載到容器內(nèi)的nginx配置文件,用來(lái)覆蓋原有的配置文件,同時(shí)也將 dist 掛載到容器內(nèi)。我們將前端項(xiàng)目的容器暴露并映射給宿主機(jī)的80端口,我們將后端項(xiàng)目的容器暴露3000端口。那么我們?cè)谀睦飳?shí)現(xiàn)反向代理請(qǐng)求呢?請(qǐng)看 nginx.conf :

#user nobody;
 worker_processes 1;
 events {
   worker_connections 1024;
 }
 http {
   include    mime.types;
   default_type application/octet-stream;
   sendfile    on;
   #tcp_nopush   on;
   #keepalive_timeout 0;
   keepalive_timeout 65;
   #gzip on;
   gzip on;
   gzip_min_length 5k;
   gzip_buffers   4 16k;
   #gzip_http_version 1.0;
   gzip_comp_level 3;
   gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
   gzip_vary on;
   server {
     listen 80;
     server_name www.xieyezi.com;
     #音樂(lè)app項(xiàng)目
     location / {
     index index.html index.htm;  #添加屬性。 
     root /usr/share/nginx/html;  #站點(diǎn)目錄
     }
     #音樂(lè)app項(xiàng)目設(shè)置代理轉(zhuǎn)發(fā)
     location /api/ {
     proxy_pass http://music-server:3000/;
     }
     error_page  500 502 503 504 /50x.html;
     location = /50x.html {
       root  /usr/share/nginx/html;
     }
   }
 }

可以看上面的 proxy_pass http://music-server:3000/; 。其中 music-server 是我們后端項(xiàng)目的服務(wù)名,我們通過(guò)服務(wù)名來(lái)找到這個(gè)容器,這樣就實(shí)現(xiàn)了反向代理。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在docker容器中調(diào)用和執(zhí)行宿主機(jī)的docker操作

    在docker容器中調(diào)用和執(zhí)行宿主機(jī)的docker操作

    這篇文章主要介紹了在docker容器中調(diào)用和執(zhí)行宿主機(jī)的docker操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • Docker之cAdvisor的安裝使用方式

    Docker之cAdvisor的安裝使用方式

    這篇文章主要介紹了Docker之cAdvisor的安裝使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Ubuntu 16.04安裝使用Docker教程

    Ubuntu 16.04安裝使用Docker教程

    本篇文章主要介紹了Ubuntu 16.04安裝使用Docker教程,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Docker配置MySql環(huán)境的實(shí)現(xiàn)步驟

    Docker配置MySql環(huán)境的實(shí)現(xiàn)步驟

    通過(guò)使用Docker,開(kāi)發(fā)人員可以更容易地構(gòu)建、測(cè)試和交付應(yīng)用程序,同時(shí)減少了環(huán)境配置和依賴(lài)項(xiàng)管理的復(fù)雜性,本文主要介紹了Docker配置MySql環(huán)境的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),感興趣的可以了解一下
    2024-02-02
  • Docker的基本使用筆記

    Docker的基本使用筆記

    Docker是一種可以把應(yīng)用程序自動(dòng)部署到容器的開(kāi)源引擎,他和虛擬化相比具有輕量和快速部署刪除的特點(diǎn),可以使軟件開(kāi)發(fā)偏向于微服務(wù)架構(gòu)方向。從資源成本和管理方式上都比傳統(tǒng)的虛擬化有著太多的優(yōu)勢(shì),但是對(duì)運(yùn)行環(huán)境的要求較高。
    2017-04-04
  • 用docker一鍵部署前后端分離項(xiàng)目的詳細(xì)流程

    用docker一鍵部署前后端分離項(xiàng)目的詳細(xì)流程

    這篇文章主要介紹了如何用docker一鍵部署前后端分離項(xiàng)目的詳細(xì)流程,通過(guò)圖文結(jié)合的方式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • 使用Dockerfile構(gòu)建docker鏡像

    使用Dockerfile構(gòu)建docker鏡像

    這篇文章主要介紹了使用Dockerfile構(gòu)建docker鏡像的方法,幫助大家更好的理解和學(xué)習(xí)使用docker,感興趣的朋友可以了解下
    2021-04-04
  • docker內(nèi)的容器如何與宿主機(jī)共享IP的方法

    docker內(nèi)的容器如何與宿主機(jī)共享IP的方法

    本文主要介紹了docker內(nèi)的容器如何與宿主機(jī)共享IP的方法,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 寫(xiě)給前端的nginx配置指南基于docker所有配置秒級(jí)運(yùn)行(最新講解)

    寫(xiě)給前端的nginx配置指南基于docker所有配置秒級(jí)運(yùn)行(最新講解)

    這篇文章主要介紹了寫(xiě)給前端的nginx配置指南基于docker所有配置秒級(jí)運(yùn)行,通過(guò)?docker?高效學(xué)習(xí)?nginx?配置,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • docker-compose啟動(dòng)mysql雙機(jī)熱備互為主從的方法實(shí)現(xiàn)

    docker-compose啟動(dòng)mysql雙機(jī)熱備互為主從的方法實(shí)現(xiàn)

    本文主要介紹了docker-compose啟動(dòng)mysql雙機(jī)熱備互為主從的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評(píng)論

绵阳市| 嘉黎县| 信丰县| 翁牛特旗| 淮南市| 湘西| 延边| 友谊县| 延川县| 土默特左旗| 山东省| 罗定市| 常山县| 广水市| 定西市| 渭南市| 新疆| 上犹县| 本溪市| 左云县| 榆树市| 鄂伦春自治旗| 通辽市| 塔河县| 岳普湖县| 湖南省| 安顺市| 绵竹市| 岳普湖县| 香河县| 平远县| 睢宁县| 兴隆县| 揭西县| 平谷区| 武鸣县| 长白| 龙海市| 洛川县| 泽普县| 井研县|