当前位置: 首页 > news >正文

Docker 中使用Nginx 一个端口启动多个前端项目

1.pull image

docker pull nginx

2.创建docker-compose

services:nginx:image: nginx:latestcontainer_name: nginxports:- "1234:80"- "1235:443"volumes:- ./conf:/etc/nginx/conf.d- ./html:/usr/share/nginx/html- ./logs:/var/log/nginxrestart: unless-stopped

3.目录挂载准备

目录结构如下:

conf/
├── default.conf    #nginx配置文件
html/
├── app1/           # 应用1
│   ├── index.html
│   └── ...
├── app2/           # 应用2
│   ├── index.html
│   └── ...
├── app3/           # 应用3
│   ├── index.html
│   └── ...
└── index.html      # 默认首页
log/                # 日志目录
docker-compose.yml  # docker-compose 配置信息

4.创建 default.conf  监听80端口同时启动多个前端

server {listen       80;server_name  localhost;client_max_body_size 1000M;add_header X-Frame-Options SAMEORIGIN;# 全局 CORS 配置add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';# 处理 OPTIONS 预检请求if ($request_method = 'OPTIONS') {add_header Access-Control-Max-Age 1728000;add_header Content-Type 'text/plain; charset=utf-8';add_header Content-Length 0;return 204;}#-------------------------------------------------------------------------🚀# app1前端配置location /app1/ {alias /usr/share/nginx/html/app1/;index index.html index.htm;try_files $uri $uri/ /app1/index.html;}# app1 后端服务配置location /app1/api/ {proxy_pass http://www.sol_china.cn/app1/;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}#-------------------------------------------------------------------------🚀# app2前端配置location /app2/ {alias /usr/share/nginx/html/app2/;index index.html index.htm;try_files $uri $uri/ /app2/index.html;}# app1 后端服务配置location /app2/app-api/ {proxy_pass http://192.168.0.100:4567/;proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}#-------------------------------------------------------------------------🚀# others server config....error_page 500 502 503 504 /50x.html;location = /50x.html {root /usr/share/nginx/html;}access_log /var/log/nginx/access.log;error_log /var/log/nginx/error.log;
}

5.构建服务

在对应的目录(见3小节),执行构建命令:

docker-compose -p dockernginx up -d


6.Vue项目注意点(如果你徘徊在404的漩涡中请检查以下内容是否和配置路径匹配)

1.路由部分 base 属性 

 

2.vue.config.js  publicPath 

3.env.production  中 API_BASE_URL 

说明:其中1、2对应 对应 location /${appName}/ (前端)       3 对应服务访问 location  /${API_BASE_URL }/ (后端)

http://www.dtcms.com/a/523585.html

相关文章:

  • S9 顺序队列
  • 函数绑定器 std::bind
  • STM32基本定时器
  • 第9部分-性能优化、调试与并发设计模式
  • 编程素养提升之EffectivePython(Builder篇)
  • Vue 3 + TypeScript 项目性能优化全链路实战:从 2.1MB 到 130KB 的蜕变
  • 网站首页图腾讯 云上做网站教程
  • Ubuntu(Linux)安装更好用的中文输入法
  • 《算法闯关指南:优选算法--二分查找》--23.寻找旋转排序数组中的最小值,24.点名
  • 【ssh密钥】--- 当密钥密码遇见 Git 服务器:一场关于 “信任” 的浪漫喜剧
  • kotlin 数据类的get和set 问题
  • 爱站网功能左旗网站建设
  • 中国企业跨境云组网指南:低延迟访问德国AWS云做数据分析的实操方案
  • 从单机阅读到云端协作:KoodoReader+cpolar构建知识管理新范式
  • 设计模式之:命令模式
  • EulerOS(NPU)安装llamafactory
  • Ubuntu卸载snap
  • STP(生成树协议)与 RSTP(快速生成树协议)核心知识
  • 数据结构:顺序表讲解(2)
  • 建设一个网站需要考虑什么海口h5公司
  • 高端广告公司网站建设wordpress插件 stock
  • 第二章、全局配置项目主题色(主题切换+跟随系统)
  • 彻底清理:Vue项目中移除static文件夹的完整指南
  • 【Linux网络】套接字Socket编程预备
  • day18_菜单查询 合并servlet
  • 算法总结篇(枚举-分治)
  • TCP pure ACK 的不可扩展性问题
  • Android16 Wifi打开到自动连接的主要日志过程分析介绍
  • 背包dp——动态规划
  • 找做柜子的网站中国芯片制造最新消息