首页 > 系统相关 >Docker compose 部署前后端-----采用nginx代理,支持一个端口部署多个前端

Docker compose 部署前后端-----采用nginx代理,支持一个端口部署多个前端

时间:2024-08-20 11:15:37浏览次数:10  
标签:index compose 部署 xxx nginx html docker

Docker compose 部署前后端-----采用nginx代理,支持一个端口部署多个前端

1、Linux服务器安装最新版docker,确保有docker compose 命令

2、创建docker工作区目录

mkdir docker-workspace

3、进入docker 工作区目录,创建前端nginx目录,创建后端 xxx 目录

mkdir nginx xxx

4、创建config目录和nginx.conf文件

cd nginx

mkdir config

cd config

vi nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    client_max_body_size 100m;
    underscores_in_headers on;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers X-Requested-With;
    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    keepalive_timeout  65;

    #gzip  on;

    # include /etc/nginx/conf.d/*.conf;

# 部署aaa前端包,后端接口代理
server {
    listen 80;
    server_name localhost;

    root /usr/share/nginx/html;
    index index.html;

        location / {
            root   /usr/share/nginx/html;
            try_files $uri $uri/ index.html;
            index  index.html index.htm;
        }

        location /aaa {
            alias /usr/share/nginx/html/aaa;
            try_files $uri $uri/ /aaa/index.html;
            index  index.html index.htm;
        }

    location /xxx-prod-api/ {
        proxy_pass http://x.x.x.x:8080/;  # 后端服务器的地址和端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
  }
}

5、前端部署,docker容器化部署nginx,创建docker-compose.yml文件,挂载nginx.conf和aaa前端包 (前端包dist改名为aaa)

vi docker-compose.yml

version: '1'
services:
  nginx:
     image: nginx:latest
     container_name: nginx
     hostname: nginx
     # network_mode: "host"
     ports:  
      - 80:80
     volumes:  
      - ./config/nginx.conf:/etc/nginx/nginx.conf
      - ./aaa:/usr/share/nginx/html/aaa
     tty: true
     # restart: always
     command: nginx -g "daemon off;"

执行 docker compose up -d 进行容器化部署

查看日志 docker logs -f nginx

6、后端部署,后端包重命名为xxx.jar,加入xxx目录,创建docker-compose.yml文件,挂载资源文件service

cd xxx

mkdir service

cd service

vi start.sh

java -Duser.timezone=Asia/Shanghai -Dlog4j2.formatMsgNoLookups=true  -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom  -jar -Dspring.config.location=/opt/java_project/service/application.properties xxx.jar

将xxx.jar 和 application.properties 放到service目录下

cd ../ 到 xxx目录

vi docker-compose.yml

version: "3"
services:
  xxx:
    container_name: xxx
    image: openjdk:17
    volumes:
      - ./service/:/opt/java_project/service
    ports:
      - "8801:8801"
    environment:
      - TZ="Asia/Shanghai"
      - LANG=en_US,UTF-8
      - LANGUAGE=en_US:en
      - LC_ALL=en_US.UTF-8
    working_dir: /opt/java_project/service  
    command: sh ./start.sh

执行 docker compose up -d 进行容器化部署

查看日志 docker logs -f xxx

示例demo自取:https://gitee.com/xietingwei1/demo.git

标签:index,compose,部署,xxx,nginx,html,docker
From: https://www.cnblogs.com/xietingwei/p/18369110

相关文章

  • 在K8S中,在主机和容器上部署应用程序有什么区别?
    在Kubernetes中部署应用程序有两种主要的方式:直接在主机上部署(也称为裸金属或非容器化部署)和在容器中部署。这两种方式有着本质的区别,下面将详细介绍它们的特点和应用场景。1.直接在主机上部署应用程序特点:直接运行:应用程序直接安装在操作系统上,没有额外的容器层。资源利......
  • windows环境Jenkins部署前端项目
    在Windows环境下使用Jenkins部署前端项目,可以按照以下步骤进行:1.安装Jenkins可以从Jenkins官网下载Windows版本的Jenkins安装包。安装完成后,启动Jenkins服务,并通过浏览器访问http://localhost:8080进入Jenkins管理界面。windows环境Jenkins部署前端项目2.配置Jenkins环......
  • windows环境Jenkins部署前端项目
    1.下载Jenkins安装包访问Jenkins官方主页,在下载页面选择适用于Windows的JenkinsWindowsInstaller(.msi)文件。这里最新版目前是Jenkins2.462.12.运行安装程序双击下载的.msi文件,启动Jenkins安装程序。选择安装路径并点击Next,按照默认设置进行安装即可。3.选择J......
  • 聊聊如何利用ingress-nginx实现应用层容灾
    前言容灾是一种主动的风险管理策略,旨在通过构建和维护异地的冗余系统,确保在面临灾难性事件时,关键业务能够持续运作,数据能够得到保护,从而最大限度地减少对组织运营的影响和潜在经济损失。因此容灾的重要性不言而喻,今天的话题主要是聊下如何利用ingress-nginx实现应用层容灾应用层......
  • ansible自动化之playbook剧本【nginx安装为例】
    一、简介roles则是ansible中,playbooks的目录组织结构。将代码或者文件进行模块化,成为roles的文件目录组织结构,易管理,易理解,代码可重用,层次清晰。二、准备目录结构创建所需目录:mkdir-proles/nginx/{files,handlers,tasks,templates,vars}创建所需文件:touchroles/......
  • nginx平滑升级
    一、概要nginx升级的原因有两种:1、nginx版本升级需要2、nginx新添新的模块二、nginx升级原理多进程模式:nginx分为主进程(master)和工作进程(work),主进程就是nginx本身,工作进程是看你电脑分配了多少核cpu,但是展示工作进程数还是nginx.conf配置文件种定义。主进程支持的信号TER......
  • nginx基础面试题
    1、破解密码:1、首先重启虚拟机,启动的时候马上按e键进入安全模式2、在有Linux那行的最后面加上rd.break3、ctrl+x将文件4、以读写的方式重新挂载:mount-oremount,rw/sysroot5、进入路径:chroot/sysroot6、改写密码:passwd6、打安全标签:touch/.autorelabel7、退......
  • 二进制下载部署Nginx
    一、通过Nginx官网并采取二进制方式部署Nginx官网二、具体步骤[[email protected]]#ll-dnginx.repo-rw-r--r--.1rootroot398Aug1722:01nginx.repo[[email protected]]#pwd/etc/yum.repos.d接下来可以直接使用yum-yinstallnginx则是直......
  • 黑马毕设分享《基于springboot4S店车辆管理系统》(源码+lw+部署文档+讲解等)
    文章目录1.前言黑马设计——专注大学生的项目实战开发,免费讲解,毕业答疑辅导黑马设计工作室简介:黑马设计是一家专注大学生的项目实战开发,免费讲解,毕业答疑辅导的工作室✅,创始人是硕士毕业于华南理工大学,工科专业,目前团队成员全职+兼职上百余人,运营线上店铺2家,与B站(IT实战,......
  • 黑马毕设分享《基于springboot就业信息管理系统》(源码+lw+部署文档+讲解等)
    文章目录1.前言黑马设计——专注大学生的项目实战开发,免费讲解,毕业答疑辅导黑马设计工作室简介:黑马设计是一家专注大学生的项目实战开发,免费讲解,毕业答疑辅导的工作室✅,创始人是硕士毕业于华南理工大学,工科专业,目前团队成员全职+兼职上百余人,运营线上店铺2家,与B站(IT实战,黑......