Я пытаюсь развернуть внешний интерфейс (угловой) и внутренний (ядро .net) через docker compose на linux-сервере.Я создал два файла Docker, присутствующих в соответствующем файле.Вот мой docker.compos.yml файл.
version: '3.4
volumes:
data:
services:
api:
build:
context: .
dockerfile: Backend/Dockerfile
ports:
- "5000:80"
depends_on:
- db
web:
build:
context: .
dockerfile: Frontend/Dockerfile
ports:
- "80:80"
depends_on:
- api
db:
image: postgres:latest
volumes:
- data:/var/lib/postgresql/data
environment:
POSTGRES_USER: "postgres"
POSTGRES_PASSWORD: "docker_Password"
POSTGRES_DB: "database_name"
ports:
- "5432:5432"
Я использую образ nginx для обслуживания внешней сборки.Вот файл default.conf с основными настройками.
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html =404;
}
}
При указанной выше конфигурации я запустил docker-compose up --build и смогчтобы увидеть мою страницу входа (так как порт 80 открыт, поэтому мой URL-адрес - мой ip сервера).Но когда я пытаюсь войти в систему, он отправляет запрос ajax моей службе API, которая работает на порту 5000, и я получаю ошибку перекрестного источника в качестве моего внешнего интерфейса, который работает на порту 80 и пытается получить доступ к службе, которая работает на порту 5000.Я хотел сделать что-то, чтобы все мои запросы, начиная с пути API (здесь, в моем случае это {server_ip} / api / login ), должны были перенаправляться в службу API.Есть ли в nginx что-нибудь полезное для перенаправления запроса?
Я также пытался добавить следующие строки в блоке местоположения default.conf , но безуспешно.
add_header 'Access-Control-Allow-Origin''*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'
;