欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用docker-compsoe部署前后端分離的項目方法

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

說在前面

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

開始動手

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

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是我們的前端項目,server是我們的后端項目。 下面再來看看我們的 docker-compose.yml :

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

可以看見,我們通過 volumes 屬性將宿主機的 nginx.conf 掛載到容器內(nèi)的nginx配置文件,用來覆蓋原有的配置文件,同時也將 dist 掛載到容器內(nèi)。我們將前端項目的容器暴露并映射給宿主機的80端口,我們將后端項目的容器暴露3000端口。那么我們在哪里實現(xiàn)反向代理請求呢?請看 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;
     #音樂app項目
     location / {
     index index.html index.htm;  #添加屬性。 
     root /usr/share/nginx/html;  #站點目錄
     }
     #音樂app項目設(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 是我們后端項目的服務(wù)名,我們通過服務(wù)名來找到這個容器,這樣就實現(xiàn)了反向代理。

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

相關(guān)文章

  • IDEA集成Docker實現(xiàn)打包的方法

    IDEA集成Docker實現(xiàn)打包的方法

    本文主要介紹了IDEA集成Docker實現(xiàn)打包的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 關(guān)于docker?cgroups資源限制的問題

    關(guān)于docker?cgroups資源限制的問題

    cgroups是一個非常強大的linux內(nèi)核工具,他不僅可以限制被namespace隔離起來的資源,還可以為資源設(shè)置權(quán)重、計算使用量,這篇文章主要介紹了docker?cgroups資源限制,需要的朋友可以參考下
    2022-09-09
  • Docker 配置阿里云容器服務(wù)操作

    Docker 配置阿里云容器服務(wù)操作

    這篇文章主要介紹了Docker 配置阿里云容器服務(wù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境的詳細教程

    基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境的詳細教程

    K8S全稱是Kubernetes,是一個全新的基于容器技術(shù)的分布式架構(gòu)領(lǐng)先方案,這篇文章主要介紹了基于Docker+K8S+GitLab/SVN+Jenkins+Harbor搭建持續(xù)集成交付環(huán)境(環(huán)境搭建篇),對docker K8S持續(xù)集成交付環(huán)境相關(guān)知識感興趣的朋友一起看看吧
    2021-05-05
  • docker-compose如何實現(xiàn)滾動更新

    docker-compose如何實現(xiàn)滾動更新

    這篇文章主要介紹了docker-compose如何實現(xiàn)滾動更新方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 基于Docker的可持續(xù)交付問題

    基于Docker的可持續(xù)交付問題

    這篇文章主要介紹了基于Docker的可持續(xù)交付問題,本文章系列中主要結(jié)合CI持續(xù)集成的工具,把這個過程完全的自動化,以及智能化的過程。當(dāng)然,使用的技術(shù)棧主要是Spring?Boot,具體內(nèi)容詳情跟隨小編一起看看吧
    2022-01-01
  • Docker離線部署geoserver的思路詳解

    Docker離線部署geoserver的思路詳解

    這篇文章主要介紹了Docker離線部署geoserver的思路詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • docker網(wǎng)絡(luò)雙向連接詳解

    docker網(wǎng)絡(luò)雙向連接詳解

    在本篇文章里小編給大家分享的是一篇關(guān)于docker網(wǎng)絡(luò)雙向連接知識點詳解內(nèi)容,有興趣朋友們可以參考學(xué)習(xí)下。
    2020-01-01
  • docker安裝Elasticsearch7.6集群并設(shè)置密碼

    docker安裝Elasticsearch7.6集群并設(shè)置密碼

    這篇文章主要介紹了docker安裝Elasticsearch7.6集群并設(shè)置密碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Docker MQTT安裝使用教程

    Docker MQTT安裝使用教程

    今天小編就為大家分享一篇關(guān)于Docker MQTT安裝使用教程,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10

最新評論