这篇“如何利用dockercompsoe部署前后端分离的项目”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何利用dockercompsoe部署前后端分离的项目”文章吧。
开始动手
先来看看我们的目录:
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部署前后端分离的项目”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。