実現したいこと
Docker初学者です。皆様よろしくお願いします。
mp3を再生するオーディオプレーヤーをDockerで動かしています。
tarファイルをVPSにアップロードして、3000番で動かしました。
私のIPアドレス
http://11.111.111.111:3000/
では表示と再生ができます。
しかし、nginxでドメインを設定し、www.hogehoge.com/audio のURLに指定して表示をしようとするとCROSのエラーが出ます。
発生している問題・分からないこと
1つのドメインでcloudflareを使っています。nginxで以下のように書いたしました。
add_header Content-Security-Policy "default-src 'self' https://static.cloudflareinsights.com; script-src 'self' 'unsafe-inline' https://static.cloudflareinsights.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' https: data:; font-src 'self' https://fonts.gstatic.com;";
もう1つのcloudflareを使っていないドメインでも試しましたが、エラーは若干違いますがCROSのエラーでした。
エラーメッセージ
error
1Content-Security-Policy: The page’s settings blocked the loading of a resource at 2https://static.cloudflareinsights.com
該当のソースコード
nginx
1location /audio/ { 2 proxy_pass http://localhost:3000/; 3 proxy_http_version 1.1; 4 proxy_set_header Upgrade $http_upgrade; 5 proxy_set_header Connection 'keep-alive'; 6 proxy_set_header Host $host; 7 proxy_set_header X-Real-IP $remote_addr; 8 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 9 proxy_set_header X-Forwarded-Proto $scheme; 10 proxy_set_header X-Forwarded-Host $host; 11 proxy_set_header X-Forwarded-Port $server_port; 12} 13
docker
1version: '3' 2services: 3 web: 4 build: . 5 ports: 6 - "3000:3000" 7 volumes: 8 - .:/usr/src/app 9 environment: 10 - NODE_ENV=production
Dockerfile
1FROM node:14-alpine 2WORKDIR /usr/src/app 3COPY package*.json ./ 4RUN npm install 5COPY . . 6EXPOSE 3000 7CMD [ "node", "server.js" ] 8
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
Content-Security-Policyの書き方をいろいろ試しますがCROSの問題が解消されませんでした。
補足
特になし