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

从一个nginx镜像启动的容器中分出部分location配置到另外一个nginx容器

今天使用nginx+docker容器的方式,搭建了前端服务的代理转发,以前全部的前端页面的js、csss文件都是放在容器外面,通过在docker-compose.yml文件中配置映射的方式映射到容器内部,进行访问,现在自己学会了制作nginx镜像,就把前端的js和css文件一并放入镜像文件中,直接启动,更新操作省去了很多解压和压缩文件的麻烦,更新操作也变得丝滑了很多
原本前端代理路径的的nginx的配置如下:

server {listen     18080 default_server;server_name  _;sendfile        on;keepalive_timeout  3600s;client_max_body_size     200m;root  /data/cwos/frontend/xh;index index.html portal/cbs-xh/index.htmlproxy_connect_timeout 600s;proxy_read_timeout 600s;proxy_send_timeout 600s;proxy_set_header X-Real_IP $remote_addr;proxy_set_header Host $host;proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}
location /cbs-xh {  alias /data/cwos/frontend/xh;  try_files $uri $uri/ /portal$uri /portal/cbs-xh/index.html;}

主要是两个关键信息root的目录和location的路径,都是服务器上实际存在的路径,路径的大致结构如下图:
在这里插入图片描述
然后我niginx的配置文件中关于cbs-xh的部分location修改一下,改成代理转发的upstream,变成如下内容

location /cbs-xh  {  proxy_pass http://cbs-xh;  proxy_set_header Host $http_host;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }#server外面添加一个转发
upstream cbs-xh {check interval=3000 rise=2 fall=3 timeout=1000 type=tcp;server  ecs.ip01:7778;
}

接着把7778端口直接映射为另外一个容器的对外端口,这里我另外一个nginx容器采用的是bridge的网络模式启用,所以需要再容器启动时把7778端口映射到容器内部,这样外部的请求来了以后就会原封不动滴转到新的nginx容器,新的容器的docker-compose.yml配置如下:

version: '3'
services:iac_xh_frontend:image: nexus-docker.********t:1.0.0.202508221736container_name: "iac_xh_frontend"network_mode: bridgerestart: alwaysports:- 7778:10100environment:- "LANG=en_US.UTF-8"volumes:- /etc/localtime:/etc/localtime:rologging:driver: "json-file"options:max-size: "10m"max-file: "5"

然后通过网桥模式,我们就把请求转发到容器内部,查看容器内部的nginx配置为如下内容:

server_tokens off;
server {listen     10100 default_server;server_name  _;client_max_body_size     60m;root    /usr/share/nginx/html/cbs-xh/;index index.html portal/cbs-xh/index.htmlproxy_set_header X-Real-IP $remote_addr;error_page 404 /404.html;location = /40x.html {}location /cbs-xh {   alias /usr/share/nginx/html/cbs-xh/;  try_files $uri $uri/ /portal$uri /portal/cbs-xh/index.html;}
}

这个location的位置部分,和最开始nginx配置中cbs-xh的部分几乎一致,除了最开始的文件位置不一样,如下的比对图:

location /cbs-xh {   alias /usr/share/nginx/html/cbs-xh/;  try_files $uri $uri/ /portal$uri /portal/cbs-xh/index.html;}
location /cbs-xh {  alias /data/cwos/frontend/xh;  try_files $uri $uri/ /portal$uri /portal/cbs-xh/index.html;}

在此,我们就完成的nginx,容器的拆分工作,启动新的nginx镜像容器后旧的nginx容器,得到两个运行的容器,如下图所示:
在这里插入图片描述
然后我们就可以试着访问18080和7778端口了,两个端口访问的结果完全一致,访问结果截图如下图所示:
在这里插入图片描述
最后我们进入7778端口代表的容器内部,再访问同一个结果,得到的结果如下图所示:
在这里插入图片描述
发现两个接口都能得到相同的结果,但是访问10010,却是通的
在这里插入图片描述
改成localhost的ip模式,却可以正常,如下图:
在这里插入图片描述
后来才知道原来docker的网桥模式是这种.默认bridge网络模式下
localhost指向容器自身的网络命名空间,即容器内部的回环地址(127.0.0.1),与宿主机完全隔离
2
3。此时若需访问宿主机服务,必须使用以下方式:

宿主机网关IP‌:172.17.0.1(Docker默认网桥的首个IP)
3
特殊域名‌:通过extra_hosts配置host.docker.internal映射到host-gateway

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

相关文章:

  • 探秘仓颉:当函数式编程遇见面向对象王国,当协程风暴席卷并发荒原——从基础语法到实战测试联动的多维编程奇遇记
  • (场景题)怎么实现数据的批量插入?
  • 网站建设与管理案例...建企业网站一般需要多少钱
  • 使用el-table时,某个字段对应多个key值,如何进行展示
  • 空间数据采集与管理(如何使用ArcGIS Pro和Python进行空间数据的管理,确保数据采集和组织的高效性和准确性)
  • WHAT - React Compiler Directives 让手动优化变成过去式
  • API请求关键指标全解:Apipost视角下,从连接到性能的全景分析
  • HTML 的底层原理
  • 布吉做网站的公司关于网站建设的图片
  • 服务器运维(六)网站访问分析统计——东方仙化神期
  • 【Docker】定制化构建一个可以运行GaussDB的kylinv10sp3系统的docker镜像
  • 5分钟搭建云IDE!CodeServer+cpolar打造跨设备开发工作站
  • vmware和kali linux安装和搭建
  • 网络:网络层(IP协议)和数据链路层
  • DDS和SOMEIP区别以及应用场景
  • Lumi 具神智能机器人 SDK说明和ACT算法中的学习与推理
  • Rokid AR眼镜开发入门:构建智能演讲提词器Android应用
  • 量化指标解码03:布林带的开口收口策略与市场波动性分析
  • 深圳网站建设报价表廊坊建手机网站
  • 余姚网站推广wordpress多个域名
  • CSS引入方式(本文为个人学习笔记,内容整理自哔哩哔哩UP主【非学者勿扰】的公开课程。 > 所有知识点归属原作者,仅作非商业用途分享)
  • SuperMap iObjects .NET 11i 二次开发(十六)—— 叠加分析之合并
  • 【Linux笔记】网络部分——传输层协议UDP
  • Ansible 自动化项目结构与 Harbor 安装示例(基于 kubeasz)①
  • Spring 源码学习(十五)—— HandlerMethodReturnValueHandler
  • everviz 数据可视化平台
  • 12 U盘挂载
  • 【Kylin Linux root 密码故障处置指南(超限重试 + 改回原密码)】
  • 网络原理:数据链路层、NAT与网页加载
  • 【从零开始开发远程桌面连接控制工具】01-项目概述与架构设计