【发布时间】:2019-05-03 03:44:38
【问题描述】:
今天我重申你的专业知识,我是一个新手,遇到一些麻烦,让我头疼。
我正在使用 TileServerGL 服务器,该服务器在 swarm 的 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 lab
- 在 Vbox 机器中运行:docker stack deploy -c docker-compose.yml lab
域解析工作正常:
- 我的游泳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,build 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的配置文件是:
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;
}
}
【问题讨论】:
标签: docker nginx nginx-reverse-proxy