Nginx代理后的Docker组合容器无法访问互联网

oknwwptz  于 2022-10-06  发布在  Nginx
关注(0)|答案(1)|浏览(237)

我的目标是设置一个反向代理,通过SSL连接到哨兵中继服务器。从本质上讲,最终目标是通过哨兵中继将流量从设备转发到Sentry.io,而nginx服务器则是为了通过安全连接完成此通信。

我有以下docker-compose.yml

version: '3'
services:
  nginx:
    image: nginx:latest
    container_name: nginx
    volumes:
      - nginx.conf:/etc/nginx/nginx.conf
      - /etc/letsencrypt/:/etc/letsencrypt/
    ports:
      - 80:80
      - 443:443
    networks:
      - relay-network
    environment:
      - ENV=production
      - APPLICATION_URL=http://relay
  relay:
    image: getsentry/relay
    container_name: relay
    command: ["run", "--config", "/etc/relay/"]
    volumes:
      - config/:/etc/relay/
    expose:
      - "80"
    networks:
      - relay-network

networks:
  relay-network:

通过nginx和中继日志,我可以看到我能够使用SSL连接连接到中继容器。然而,由于无效的项目ID,所有的哨兵查询都失败了--我知道这是不正确的,因为当我用相同的项目ID向真正的Sentry.io(不是通过我的代理)发送消息时,它可以工作。我的直觉是,哨兵中继服务器无法访问互联网来验证项目ID是否真实,因此它试图查找本地项目ID,而本地项目ID并不存在。

如何确保我的中继容器可以连接到Sent ry.io等外部网络?

w7t8yxp5

w7t8yxp51#

使用docker exec -it relay bash交互连接到您的中继容器,并尝试使用curl ping某些内容或加载页面。如果您想自动执行此操作,可以使用healthcheck

相关问题