docker - nginx/docker 路由配置
问题描述
我有一个数字海滴。在它的根目录中是以下文件
apps/
-main/
-index.html
nginx.conf
docker-compose.yml
我的 docker-compose.yml 文件具有以下内容
version: '3'
networks:
proxy:
external: true
internal:
external: false
services:
traefik:
image: traefik:alpine
ports:
- "8080:8080"
- "80:80"
- "443:443"
restart: always
labels:
- logLevel="DEBUG"
- "traefik.backend=monitor"
- "traefik.frontend.rule=Host:monitor.domain.com"
- "traefik.port=8080"
- "traefik.frontend.entryPoints=http,https"
- "traefik.enable=true"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./traefik.toml:/traefik.toml"
- "./acme.json:/acme.json"
expose:
- "8080"
networks:
- internal
- proxy
custom-badge:
image: user/app
environment:
PORT: 3000
ports:
- "3000:3000"
labels:
- traefik.enabled=true
- traefik.backend=app
- traefik.frontend.rule=Host:app.domain.com
- traefik.docker.network=proxy
- traefik.port=3000
networks:
- internal
- proxy
server:
image: nginx:alpine
labels:
- traefik.enabled=true
- traefik.backend=
- traefik.frontend.rule=Host:domain.com
- traefik.docker.network=proxy
- traefik.port=80
volumes:
- "./apps:/etc/nginx/html:ro"
- "./nginx.conf:/etc/nginx/nginx.conf:ro"
command: [nginx-debug, '-g', 'daemon off;']
depends_on:
- traefik
和我的 nginx.conf
events {
worker_connections 1024; ## Default: 1024
}
http {
server {
listen 80;
server_name domain.com www.domain.com;
location / {
root /etc/nginx/html/main;
proxy_pass domain.com:8080/;
}
}
}
问题是,当我运行 docker-compose up 时,一切都启动了,我可以看到所有 3 个容器都启动了,但是当我转到 domain.com 时,我没有看到我的 index.html 文件。我做错了什么?
其他域工作正常:app.domain.com 和 monitor.domain.com 这让我认为 nginx 配置和需要提供哪些文件一定有问题。
解决方案
你有一个循环 - 删除proxy_pass
。Nginx 应该从根文件夹提供数据,而不是将请求代理到另一个服务。
推荐阅读
- python - 我想使用 Python 计划库或其他方式检查特定文件夹中的文件数
- javascript - 尝试连接到服务器时..失败:WebSocket 握手期间出错:意外的响应代码:404
- laravel - 如何检查 Laravel 数组数据?
- angular - 就像 javascript 中的 document.getElementById("id") 一样,我们可以在 angular2 及以上版本中做些什么来获取类型脚本中的 dom 元素
- java - 使用 JUnitParamsRunner 对不同方法的 Mockito.verify() 进行参数化测试
- module - 如何在 Odoo 13 中使用内部用户隐藏这些模块?
- javascript - 如何使用Javascript将简单数组转换为三维数组(矩阵)
- shell - 将输出写入其运行的文件夹名称的 Shell 脚本
- css - Angular 8 中带有 ngx-ellipsis 的文本溢出
- python - 使用 requests.post 执行时,响应标头与浏览器不同