容器间访问

news/2024/10/21 16:12:10

同一主机下的不同服务间访问

最近又部署了一个前后端分离项目,但是还是学艺不精,折腾了半天

最后一个遇到的问题就是,前端容器启动了,但是始终无法连接后端的接口

版本1

这是当时的配置信息

# nginx
worker_processes 1;events {worker_connections 1024;
}http {include           mime.types;default_type      application/octet-stream;sendfile          on;keepalive_timeout 65;server {listen      80;server_name localhost;charset utf-8;location / {root      /usr/share/nginx/html;try_files $uri $uri/ /index.html;index     index.html index.htm;}location /prod-api/ {proxy_set_header Host            $http_host;proxy_set_header X-Real-IP       $remote_addr;proxy_set_header REMOTE-HOST     $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass       http://{公网ip}:28080/;client_max_body_size  1024m;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}
}
# docker-compose
services:api:container_name: malan_apiimage: malan-api:latestports:- "28080:28080"environment:- ...volumes:- "./api/upload:/upload"restart: "unless-stopped"ui:container_name: malan_uiimage: malan-ui:latestports:- "11780:80"volumes:- "./ui/nginx.conf:/etc/nginx/nginx.conf"restart: "unless-stopped"

这个情况下需要开放公网的ip端口之后才能访问

版本2

# nginx
...location /prod-api/ {proxy_set_header Host            $http_host;proxy_set_header X-Real-IP       $remote_addr;proxy_set_header REMOTE-HOST     $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass       http://127.0.0.1:28080/;client_max_body_size  1024m;}...

nginx.conf不变

主要就是转发的ip改了 因为我不想对外直接开放后端的接口 但是这样一直访问不了

我对其原因非常好奇(发现自己好蠢)

  • 容器内的127.0.0.1指向容器自身,而不是主机。如果你想从容器访问主机服务,可以使用主机的IP地址,或者在Docker for Windows和Mac中,使用host.docker.internal来访问主机。

版本3

# nginx
...location /prod-api/ {proxy_set_header Host            $http_host;proxy_set_header X-Real-IP       $remote_addr;proxy_set_header REMOTE-HOST     $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass       http://malan_api:28080/;client_max_body_size  1024m;}
...

直接使用服务名访问 太好了 既不用开放端口 也可以访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74225.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

VMware低版本打开高版本虚拟机

前言全局说明VMware低版本打开高版本虚拟机一、说明 环境: Windows 11 家庭版 23H2 22631.3737二、注意修改前,备份虚拟机文件 为了数据安全,最好不要手动修改虚拟机配置信息 最好使用对应版本创建的虚拟机三、版本对应 https://www.cnblogs.com/wutou/p/17712402.html四、修…

【验证码识别专栏】大炮打麻雀 — CLIP 图文多模态模型,人均通杀 AIGC 六、九宫格验证码

前言 近期有粉丝私信,不知道如何训练某讯系点选验证码,之前星球群也有不少粉丝讨论相关问题,为满足粉丝们的需求,本文将对这型验证码的训练进行讲解, 文末可以下载相关的工具,包括 文章配套标注工具 + 文章配套训练代码 + 部分学习数据集(少量类目,仅供学习使用,不设计…

数据库—多表查询、事务

1.多表查询: 例:点击查看代码 # 创建部门表 CREATE TABLE dept( did INT PRIMARY KEY AUTO_INCREMENT, dname VARCHAR(20) );# 创建员工表 CREATE TABLE emp ( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10), gender CHAR(1), -- 性别 salary DOUBLE, -- 工资 join_d…

021 天气案例

@click后面也可以写一些简单语句,这样就不用配置methods了

通义灵码操作指南——插件配置指南

点击链接,立即下载通义灵码插件:https://tongyi.aliyun.com/lingma/ 通义灵码支持在 Visual Studio Code、JetBrains IDEs 中修改常用快捷键、进行行间生成的启用/禁用等功能开关配置。 Visual Studio Code 中配置通义灵码 准备工作 如果需要在 Visual Studio Code 中使用通义…

1200PLC通过NODERED,将数据发布到阿里云物联网平台

配置要求:1,电脑上需要安装有博图软件,我这里使用的是TIA Portal V16版本 2,电脑上需要安装NODE_RED 3,已经有阿里云物联网平台账号。新建PLC项目,编写PLC程序, *新建PLC项目,我这里硬件为cpu1214,dcdc_R| | | | | ---- | ---- | ---- | | | …

织梦数据库主表?dedecms数据库包含那些表

以下是织梦CMS (DedeCMS) 数据库表的汇总表格,包括主要表及其用途:表名 用途dede_admin 管理员信息表,存储管理员账号、密码、权限等信息。dede_addonarticle 附加文章表,存储文章的详细内容。dede_arctype 栏目类型表,存储网站栏目的分类信息。dede_archives 文档主表,存…

UI自动化测试方案及各个环境部署步骤

Saas后台UI自动化测试方案 一、背景saas后台功能繁多,人工回归工作量大; 版本持续迭代周期快,无足够的人力资源进行全量回归测试,特别是后端架构变动时,影响范围很广,导致测试占用时间太多。二、目标 目标一:对冒烟测试、主功能回归测试进行自动化,这样可以持续,快速的…