前提・実現したいこと
local環境でnginxのリバースプロキシで下記構成を動かしたいと考えています。
React(フロントエンド) → nginx → SpringBoot(バックエンド)
発生している問題・エラーメッセージ
502エラーとなり、バックエンドに接続できません。
nginx_1 | 2019/11/18 00:10:15 [error] 7#7: *7 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.128.1, server: , request: "POST /api/authentication/uuid HTTP/1.1", upstream: "http://127.0.0.1:8080/api/authentication/uuid", host: "backend", referrer: "http://localhost:3000/" nginx_1 | 2019/11/18 00:10:15 [warn] 7#7: *7 upstream server temporarily disabled while connecting to upstream, client: 192.168.128.1, server: , request: "POST /api/authentication/uuid HTTP/1.1", upstream: "http://127.0.0.1:8080/api/authentication/uuid", host: "backend", referrer: "http://localhost:3000/"
該当のソースコード
フロントエンドからAPIのパスです。
Reactからの接続先
1REACT_APP_API_BASE_URL=http://backend/api
nginxの設定です。
/apiのパスをバックエンドにリバースプロキシしています。
nginx
1server { 2 listen 80; 3 4 location / { 5 root /usr/share/nginx/html; 6 index index.html index.htm; 7 } 8 9 location /api { 10 proxy_pass http://localhost:8080; 11 add_header Access-Control-Allow-Origin *; 12 add_header Access-Control-Allow-Methods "POST, GET, OPTIONS, PUT, DELETE, PATCH"; 13 add_header Access-Control-Allow-Headers "Origin, Authorization, Accept, Content-Type, X-Requested-With, X-studychannel-session-id, X-studychannel-admin-session-id, X-studychannel-uuid"; 14 add_header Access-Control-Expose-Headers "date, via, x-content-type-options, Authorization, transfer-encoding, x-cache, connection, x-xss-protection, server, x-frame-options, Access-Control-Allow-Methods, Access-Control-Allow-Origin, Access-Control-Allow-Credentials, Access-Control-Allow-Headers, X-studychannel-session-id, X-studychannel-admin-session-id, X-studychannel-uuid" always; 15 add_header Access-Control-Allow-Credentials true; 16 } 17 18 error_page 404 /404.html; 19 location = /40x.html { 20 root /usr/share/nginx/html; 21 } 22 23 error_page 500 502 503 504 /50x.html; 24 location = /50x.html { 25 root /usr/share/nginx/html; 26 } 27}
SpringBoot
1server.port=8080(変更せず)
hosts
1127.0.0.1 backend
試したこと
リバースプロキシの接続先をlocal環境ではなく、AWSの開発環境に向けると問題なく接続ができました。
補足情報(FW/ツールのバージョンなど)
nginx:1.17.5
docker-composeで立ち上げています。
docker
1nginx: 2 image: nginx:1.17.5 3 ports: 4 - "80:80" 5 volumes: 6 - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
回答1件
あなたの回答
tips
プレビュー