首页 > 系统相关 >nginx与其他容器如何通讯

nginx与其他容器如何通讯

时间:2023-01-29 20:45:01浏览次数:59  
标签:容器 通讯 index ip nginx 172.17 服务器

代理的网址

上一章我们有提到default.conf要代理的容器网址问题,现在展开详细说1、启动要代理的容器(我以mvc项目为例)
跳转上一章:https://www.cnblogs.com/long-live/p/dn.html

1、查看docker网桥信息,看到mvc得到的ip为172.17.0.2/16

root@iZwz97sm51bf4kswvc7dbqZ:~# docker network inspect bridge

我们知道同一个服务器上同在bridge网桥下的容器是可以通过docker0的veth-pair相互通讯的

2、所以将nginx容器内修改为mvc容器ip即可,并且端口应该是mvc的容器内端口,因为现在是容器内相互通讯嘛

server {
    listen       80;
    listen  [::]:80;
    server_name  ilhg.heiiii021.top;

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

    location / {
       # root   /usr/share/nginx/html;
       # index  index.html index.htm;
       proxy_pass https://172.17.0.2:8086; # 修改此处
    }

3、浏览器查看成功

4、那么问题来了,为什么上篇博客写的是https://172.17.0.1:8001也行呢?原因很简单,因为172.17.0.1是docker0与服务器直接通讯ip,就相当于服务器的对外ip一半(因为服务器对外ip既可以被外界访问也可以在服务器内部访问所有端口,而172.17.0.1是内部的,不能被外界访问,所以只有服务器对外ip的一半功能。),再加上端口又是容器启动时服务器对外端口8001,这样一来,就相当于是从nginx容器内部去寻找服务器内部的8001端口,当然可以访问成功。只不过这就不是容器内相互访问的概念了!

server {
    listen       80;
    listen  [::]:80;
    server_name  ilhg.heiiii021.top;

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

    location / {
       # root   /usr/share/nginx/html;
       # index  index.html index.htm;
       proxy_pass https://172.17.0.1:8001;
    }

5、我们知道放在服务器上项目中的localhost就是指该服务器的对外ip,那我们测试将172.17.0.1改为localhost发现浏览器不能访问。所以说明放在服务器上的docker内某个容器的localhost绝不是服务器的对外ip,可能是它被分到的ip如172.17.0.x

标签:容器,通讯,index,ip,nginx,172.17,服务器
From: https://www.cnblogs.com/long-live/p/ngp.html

相关文章

  • nginx的nginx.conf配置文件如何修改代理的路由
    方法location/api/{set$request_uri_new$request_uri;if($request_uri~"^/api/(.*)$"){set$request_uri_new/$1;}proxy_passhtt......
  • C++复健:运算符重载,实现string容器,实现string和vector的迭代器
    使得对象的运算像内置类型一样a.operator+(b);重载运算符的一些注意点:不能重载运算符操作基础数据类型:(1)重载运算符必须和用户定义的class类型一起使用(2)重载的运算符......
  • 容器化基础
    K8S容器化基础前言如标题中的问题所提到的虚拟化,容器,Docker和K8s那样,我们不妨这样问:这些技术到底适用于哪些场景,有没有别的技术可以替代?这些技术的优劣在哪里?下面我将......
  • 01-nginx基础
    1.基础知识1.1基本配置main#全局配置events{#nginx工作模式配置}http{......
  • Docker consul容器服务更新与发现
    一、Consul概述1、什么是服务注册与发现服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯......
  • Docker consul的容器服务更新与发现
    一、Consul概述(1)什么是服务注册与发现服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯......
  • docker consul的容器服务更新与发现
    一、Consul1、什么是服务注册与发现(1)服务注册与发现是微服务架构中不可或缺的重要组件。起初服务都是单节点的,不保障高可用性,也不考虑服务的压力承载,服务之间调用单纯的......
  • 对于vector容器中,存储的是int类型,但若不开long long 就ER
    牛客暑期训练1Fdfs鸡玩炸弹人#include<iostream>#include<vector>usingnamespacestd;typedeflonglongll;//计算有炸弹的连通块的数量。在一个连通块内不论......
  • 扩展修订 | 深入浅出学习透析Nginx服务器的基本原理和配置指南「负载均衡篇」
    前言介绍由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果......
  • LTC2440串行SPI通讯时序
    LTC2440简介我们使用4-wireSPI接口按照时序图上的描述,SDO是在SCLK的下降沿更新数据,那么FPGA接收端就应该在上升沿采集数据。实际测试发现SDO数据相对于SCLK延迟了6......