Docker jwilder/nginx禁止给予403许可

Docker jwilder/nginx禁止给予403许可,docker,nginx,reverse-proxy,jwilder-nginx-proxy,Docker,Nginx,Reverse Proxy,Jwilder Nginx Proxy,我正在尝试使用一个带有nginx反向代理的静态index.html文件为多个容器提供服务 我试图按照文档创建一个默认位置 location / { root /app; index index.html; try_files $uri $uri/ /index.html; } 如果我在容器中用 $ docker-compose exec nginx-proxy cat /etc/nginx/conf.d/default.conf 我得到这个结果: server {

我正在尝试使用一个带有nginx反向代理的静态index.html文件为多个容器提供服务

我试图按照文档创建一个默认位置

location / {
  root   /app;
  index  index.html;
  try_files $uri $uri/ /index.html;
}
如果我在容器中用

$ docker-compose exec nginx-proxy cat /etc/nginx/conf.d/default.conf
我得到这个结果:

server {
        server_name _; # This is just an invalid value which will never trigger on a real hostname.
        listen 80;
        access_log /var/log/nginx/access.log vhost;
        return 503;
}
# xx.example.services
upstream xx.example.services {
                                ## Can be connected with "nginx-proxy" network
                        # examplecontainer1
                        server 172.18.0.4:80;
}
server {
        server_name xx.example.services;
        listen 80 ;
        access_log /var/log/nginx/access.log vhost;
        location / {
                proxy_pass http://xx.example.services;
                include /etc/nginx/vhost.d/default_location;
        }
}
# yy.example.services
upstream yy.example.services {
                                ## Can be connected with "nginx-proxy" network
                        # examplecontainer2
                        server 172.18.0.2:80;
}
server {
        server_name yy.example.services;
        listen 80 ;
        access_log /var/log/nginx/access.log vhost;
        location / {
                proxy_pass http://yy.example.services;
                include /etc/nginx/vhost.d/default_location;
        }
}
如果我检查/etc/nginx/vhost.d/default_location的内容,它正是我在开头键入的内容,所以这很好

然而,当我去xx.example.services时,我得到了一个403

据我所知,这意味着找不到index.html文件,但如果我将其执行到容器和cat app/index.html中,它确实存在

我已检查所有容器是否在同一网络上

我正在用这个命令运行我的容器

docker run -d --name examplecontainer1 --expose 80 --net nginx-proxy -e VIRTUAL_HOST=xx.example.services my-container-registry
更新 我检查了nginx代理容器的日志,发现以下错误消息:

[错误]29#29:*1目录索引“/app/”被禁止

尝试按照删除$uri/但这给我留下了重定向周期。现在我想看看我是否可以设置正确的权限,但我正在努力


我遗漏了什么?

您好,很简单,您的容器遗漏了/app/index.html,在它们里面

我的问题是一个基本的误解,即反向代理可以进入我容器的文件系统,正如jwilder自己所说的那样


因此,在我的例子中,反向代理上的默认位置是不必要的。相反,我可以简单地让它指向我的容器,让容器中的nginx配置确定我的应用程序的位置。

那么,当我编写“docker exec examplecontainer1 cat app/index.html”以及该容器的配置或文件的权限时,我如何查看内容?