网站建设资讯

NEWS

网站建设资讯

如何利用dockercompsoe部署前后端分离的项目

这篇“如何利用dockercompsoe部署前后端分离的项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何利用dockercompsoe部署前后端分离的项目”文章吧。

10年积累的成都网站制作、成都做网站、外贸营销网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有红山免费网站建设让你可以放心的选择与我们合作。

开始动手

先来看看我们的目录:

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 #根据server目录下面的dockerfile构建镜像
   restart: always
   expose:
   - 3000

可以看见,我们通过 volumes 属性将宿主机的 nginx.conf 挂载到容器内的nginx配置文件,用来覆盖原有的配置文件,同时也将 dist 挂载到容器内。我们将前端项目的容器暴露并映射给宿主机的80端口,我们将后端项目的容器暴露3000端口。那么我们在哪里实现反向代理请求呢?请看 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项目设置代理转发
     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 是我们后端项目的服务名,我们通过服务名来找到这个容器,这样就实现了反向代理。

以上就是关于“如何利用dockercompsoe部署前后端分离的项目”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


分享文章:如何利用dockercompsoe部署前后端分离的项目
转载来于:http://cdweb.net/article/gojpid.html