前提・実現したいこと
nginxをdocker環境で利用しようとしています。
apiへのrequestをnginxのリバースプロキシ経由で行いたいのですが、
実際には404エラーになってしまいます。
発生している問題・エラーメッセージ
ローカルのdocker環境でapiサーバーにリクエストを飛ばすと、以下のようなエラーが表示されます。
nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:06 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-" nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:06 +0000] "GET /static/js/bundle.js HTTP/1.1" 304 0 "http://localhost:3050/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-" nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:07 +0000] "GET /static/js/0.chunk.js HTTP/1.1" 304 0 "http://localhost:3050/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-" nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:07 +0000] "GET /static/js/main.chunk.js HTTP/1.1" 304 0 "http://localhost:3050/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-" nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:07 +0000] "GET /static/js/bundle.js.map HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-" nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:08 +0000] "GET /static/js/0.chunk.js.map HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-" nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:08 +0000] "GET /static/js/main.chunk.js.map HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-" api_1 | [GIN] 2019/08/09 - 22:19:09 | 404 | 41.937µs | 172.23.0.5 | GET /articles nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:09 +0000] "GET /api/articles HTTP/1.1" 404 18 "http://localhost:3050/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-" nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:10 +0000] "GET /sockjs-node/info?t=1565389150444 HTTP/1.1" 200 90 "http://localhost:3050/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-" nginx_1 | 172.23.0.1 - - [09/Aug/2019:22:19:10 +0000] "GET /manifest.json HTTP/1.1" 304 0 "http://localhost:3050/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-"
該当のソースコード
//フォルダ構成 article ├ client │ └ nginx │ └ default.conf ├ api ├ nginx │ └ default.conf └ docker-compose.yml
yml
1//docker-compose.yml 2version: '3' 3services: 4 nginx: 5 restart: always 6 build: 7 dockerfile: Dockerfile.dev 8 context: ./nginx 9 ports: 10 - '3050:80' 11 depends_on: 12 - client 13 - api 14 api: 15 build: 16 dockerfile: Dockerfile.dev 17 context: ./api 18 volumes: 19 - ./api:/app 20 depends_on: 21 - db 22 tty: true 23 environment: 24 - AWS_ACCESS_KEY_ID 25 - AWS_SECRET_ACCESS_KEY 26 - MYSQL_USER 27 - MYSQL_PASSWORD 28 - MYSQL_HOST 29 client: 30 build: 31 dockerfile: Dockerfile.dev 32 context: ./client 33 volumes: 34 - /app/node_modules 35 - ./client:/app
conf
1//nginx/default.conf 2upstream client { 3 server client:3000; 4} 5 6upstream api { 7 server api:2345; 8} 9 10server { 11 listen 80; 12 13location / { 14 proxy_pass http://client; 15} 16 17location /sockjs-node { 18 proxy_pass http://client; 19 proxy_http_version 1.1; 20 proxy_set_header Upgrade $http_upgrade; 21 proxy_set_header Connection "Upgrade"; 22} 23 24location /api { 25 rewrite /api/(.*) /$1 break; 26 proxy_pass http://api; 27 } 28}
conf
1//client/nginx/default.conf 2server { 3 listen 3000; 4 5 location / { 6 root /usr/share/nginx/html; 7 index index.html index.htm; 8 try_files $uri $uri/ /index.html; 9 } 10}
完全なソースコードは以下のgithubにあります。
https://github.com/jpskgc/article
試したこと
実際にelastic beanstalkにデプロイしたurlを叩いてみると、502 Bad Gateway
でした。
http://multidocker-env.vwnrixavuv.ap-northeast-1.elasticbeanstalk.com/api/articles
補足情報(FW/ツールのバージョンなど)
・client: react/axios ・api: golang/gin ・web-server: nginx ・db: mysql ・container: docker ・ci-tool: travis ・deploy: aws elastic beanstalk
以上、お手数ですがご教授いただけると幸いです。よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/10 03:39