このプロジェクトに基づいて、Dockerでgrafanaを操作するようにグラファイトを設定しようとしています: https://github.com/kamon-io/docker-grafana-graphite
dockerfileを実行すると、nginxで403Forbiddenエラーが発生します。
nginxの構成は、プロジェクトの構成とほぼ同じです。 dockerfilesをサーバーで実行し、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に非常に慣れていません...私が誤解している構成に何かがあるかどうか疑問に思っていました。
前もって感謝します。
これは、最初のロケーションブロックにヒットしていて、インデックスファイルが見つからないためです。
'/'へのリクエストは、 '/ src/grafana/dist'で 'index.html'を検索します。
次のことを確認します。1。「index.html」が存在します。 2.適切な権限があります。 nginxには、「index.html」に至るまでのディレクトリツリー全体への読み取りアクセス権があります。つまり、ディレクトリ「src」、「src/grafana」、「src/grafana/dist」、および「index.html」自体を読み取ることができる必要があります。これを実現するためのハッキーなクイックフィックスは、「Sudo chmod -R 755/src」を実行することですが、お勧めしません。
問題はボリュームに関するものです。ボリュームを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
現在angularプロジェクトでは、変更を監視することでプロジェクトをビルドでき、リアルタイムの変更はnginxに自動的に適用されます。次のコマンドでangularプロジェクトを実行します:
ng build --outputPath =/home/USER/docker-volums/nginx-sample1/usr/share/nginx/html/--watch