nginx 403禁止的错误

问题描述 投票:5回答:3

基于此项目,我正在尝试在docker中设置石墨以与grafana一起使用:https://github.com/kamon-io/docker-grafana-graphite

并且当我运行dockerfile时,nginx出现403禁止错误。

我对nginx的配置与项目的配置几乎相同。我在服务器上运行dockerfile并在Windows计算机上对其进行测试。因此配置不完全相同...例如,我有:

server {
listen 80 default_server;
server_name _;
location / {
  root /src/grafana/dist;
  index index.html;
}
location /graphite/ {
    proxy_pass                 http:/myserver:8000/;
    proxy_set_header           X-Real-IP   $remote_addr;
    proxy_set_header           X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header           X-Forwarded-Proto  $scheme;
    proxy_set_header           X-Forwarded-Server  $host;
    proxy_set_header           X-Forwarded-Host  $host;
    proxy_set_header           Host  $host;

    client_max_body_size       10m;
    client_body_buffer_size    128k;

    proxy_connect_timeout      90;
    proxy_send_timeout         90;
    proxy_read_timeout         90;

    proxy_buffer_size          4k;
    proxy_buffers              4 32k;
    proxy_busy_buffers_size    64k;
    proxy_temp_file_write_size 64k;

    add_header Access-Control-Allow-Origin "*";
    add_header Access-Control-Allow-Methods "GET, OPTIONS";
    add_header Access-Control-Allow-Headers "origin, authorization, accept";
}

但是我仍然不断被禁止使用403。检查错误日志中的nginx说:

 directory index of "/src/grafana/dist/" is forbidden

停止并再次运行它说:

 directory index of "/src/grafana/dist/" is forbidden

我对nginx还是很陌生……想知道配置中是否存在我误解的东西。

谢谢。

nginx docker graphite grafana
3个回答
16
投票

这是因为您正在击中第一个位置块而找不到索引文件。


3
投票

对'/'的请求将在'/ src / grafana / dist'中寻找'index.html'。

确认:1.'index.html'存在。2.您拥有正确的权限。nginx具有对整个目录树(以“ index.html”)的访问权限。也就是说,它必须能够读取目录“ src”,“ src / grafana”和“ src / grafana / dist”以及“ index.html”本身。一个hacky快速修复程序可以做到这一点,那就是'sudo chmod -R 755 / src',但是我不建议这样做。


0
投票

问题关乎数量;而不是将卷设置为html目录,而是将其设置为nginx目录。例如:代替

-v / home / USER / docker-volums / nginx-sample1 / usr / share / nginx / html:/ usr / share / nginx / html

执行以下操作:

-v / home / USER / docker-volums / nginx-sample1 / usr / share / nginx:/ usr / share / nginx

问题将解决!

用于解决问题:

remove previous existing container and create container by following command: 

[docker run -d --name nginx-sample1 -v / home / USER / docker-volums / nginx-sample1 / usr / share / nginx:/ usr / share / nginx -p 2080:80 nginx:latest

© www.soinside.com 2019 - 2024. All rights reserved.