Setelah menyiapkan API Rails, bereaksi dan Nginx

Tampaknya semuanya baik-baik saja tetapi ketika saya mencoba memposting atau tindakan lain tidak masuk API! hanya tinggal bereaksi!

Setiap tutorial yang terkait dengan konfigurasi ini menunjukkan lokasi utama untuk reaksi frontend dan lokasi sekunder ke backend tetapi seperti yang saya katakan sebelumnya setelah mengunjungi localhost:80 buka reaksi dan pada tindakan apa pun seperti pos, letakkan atau hapus tindakan tidak masuk ke backend .

Saya sudah mencoba untuk membalikkan lokasi atau hulu kedua lokasi di lokasi utama dan masih tidak mengerti bagaimana membuatnya bekerja. jadi tolong ada yang bisa bantu jelasin ini?

Docker-compose

version: "3"
volumes:
  postgres_data: {}

services:
  db:
    image: postgres:12.0-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data

  nginx:
    build:
      context: .
      dockerfile: ./docker/nginx/Dockerfile
    restart: on-failure
    ports:
      - 80:80
      - 8080:8080
    links:
      - frontend
    depends_on:
      - frontend

  backend:
    build:
      context: .
      dockerfile: ./docker/backend/Dockerfile
    ports:
      - 5000:5000
    depends_on:
      - db
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=banks_development

  frontend:
    build:
      context: .
      dockerfile: ./docker/frontend/Dockerfile
    ports:
      - 3000:3000
    depends_on:
      - backend

Konfi nginx

events {

  worker_connections 1024;
}

http {


  server {

    listen 80;


    location /api {

      # proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;

      proxy_pass http://backend:5000;
      proxy_redirect off;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-NginX-Proxy true;

    }


    # this is where my react-app is located
    location / {

      proxy_pass http://frontend:3000;
      proxy_redirect off;
      #proxy_http_version 1.1;
     # proxy_set_header Upgrade $http_upgrade;
     # proxy_set_header Connection "upgrade";
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-NginX-Proxy true;


    }
  }
}
0
jjplack 8 Maret 2020, 09:28

1 menjawab

Jawaban Terbaik

Anda perlu mengkonfigurasi frontend dengan proxy, sama seperti yang ditunjukkan di bawah ini

  "proxy": "http://127.0.0.1/api"

Periksa ini untuk info lebih lanjut

1
Al-waleed Shihadeh 8 Maret 2020, 22:42