gpt4 book ai didi

docker - NGINX反向代理-Docker Swarm-proxy_pass不起作用

转载 作者:行者123 更新时间:2023-12-02 19:28:55 26 4
gpt4 key购买 nike

今天,我将继续向您介绍我的专业知识,我是一个新手,遇到了一些麻烦,真是令人头疼。

我正在使用TileServerGL服务器,该服务器在一群人的docker容器中提供OpenStreet.org映射。该服务器运行良好,如果将端口80公开并重定向到8080,我可以在[IP Docker Swarm]:8080上找到其内容。

现在,我需要在此容器前面添加一个反向代理,以增加一些安全性(但还没有,首先,我需要使反向代理正常工作),因此我向docker-compose.yml文件中添加了一个Nginx容器,正在尝试正确配置nginx反向代理的简化版本,但没有成功。

我努力了:

  • 使用docker-compose up在本地运行–build
  • 使用以下命令在本地计算机的群集中运行:docker stack deploy -c docker-compose.yml实验室
  • 在Vbox计算机内部运行,具有:docker stack deploy -c docker-compose.yml实验室

  • 域解析工作正常:
  • 我的游泳IP是:192.168.1.105
  • 我在etc / hosts上的
  • :192.168.1.105 app.io

  • 在浏览器中打开 http://app.io时,我将获得默认的Nginx欢迎页面。到现在为止还挺好。但是当我点击 http://maps.app.io时,我仍然得到相同的默认欢迎页面。

    Nginx服务器日志:
    10.255.0.2 - - [01/Dec/2018:00:55:59 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36" "-"

    在阅读我在互联网上找到的每篇文章,文章和教程之前,我都不会请您提供帮助。据我所知,“nginx.conf”文件是正确的,但事实表明,我无疑是错误的,并且对自己的错误视而不见。非常感谢您的帮助。

    我在跑:
  • Linux Mint 19塔拉
  • Docker版本:Docker 18.09.0版,内部版本4d60db4
  • Docker机器版本:docker-machine版本0.16.0,内部版本702c267f

  • docker-compose.yml文件:
    version: "3.5"

    networks:
    nginx-net:
    driver: overlay

    services:
    maps:
    image: xxxx/xxxx:mapstiles
    volumes:
    - ./server_mapstiles/app/data:/data
    networks:
    - nginx-net
    deploy:
    restart_policy:
    condition: on-failure
    replicas: 1

    nginx:
    image: nginx:1.15.7
    container_name: nginx
    ports:
    - "80:80"
    networks:
    - nginx-net
    volumes:
    - ./server_nginx/nginx.conf:/etc/nginx/proxy.conf:ro
    deploy:
    restart_policy:
    condition: on-failure
    replicas: 1
    depends_on:
    - maps

    Nginx conf文件是:
    server {
    listen 80;
    server_name maps.app.io;

    location / {
    proxy_pass http://:maps:80;
    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;
    proxy_set_header X-Forwarded-Host $server_name;
    resolver 127.0.0.11;
    }
    }

    最佳答案

    您的proxy_pass指令有一些讨厌的无效语法。
    proxy_pass http://:maps:80;不是有效的代理传递目标,http://:maps:80将会失败,因为//之后是第一个冒号。

    尝试proxy_pass http://maps:80;,但请记住using a hostname to define a location/proxy pass destination/etc.的NGINX配置陷阱

    关于docker - NGINX反向代理-Docker Swarm-proxy_pass不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53566798/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com