今天,我将继续向您介绍我的专业知识,我是一个新手,遇到了一些麻烦,真是令人头疼。
我正在使用TileServerGL服务器,该服务器在一群人的Docker容器中提供OpenStreet.org映射。该服务器运行良好,如果将端口80公开并重定向到8080,我可以在[IP Docker Swarm]:8080上找到其内容。
现在,我需要在此容器前面添加一个反向代理以增加一些安全性(但还没有,首先我需要使反向代理正常工作),因此我将Nginx容器添加到docker-compose.yml中文件,并且我尝试正确配置nginx反向代理的简化版本,但没有成功。
我尝试过:
域解析工作正常:
在浏览器中打开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”文件是正确的,但事实表明,我无疑是错误的,并且对自己的错误视而不见。非常感谢您的帮助。
我正在跑步:
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;
}
}
答案 0 :(得分:0)
您的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配置陷阱