@AquaForm

Как настроить docker и nginx так, чтобы работал API на next.js?

Добрый день! Решил попробовать для своего проекта docker. Проект на next.js
Использую docker-compose. Все хорошо до того момента как к проекту добавляю контейнер с nginx.

Браузер выдает ошибку -
Аccess to XMLHttpRequest at 'localhost:3000/api/categories' from origin 'surgut.expert.local' has been blocked by CORS


Меняю в настройках next.js поменять адрес API на surgut.expert.local/api, то выдает ошибку
Error: connect ECONNREFUSED 127.0.0.1:80


Настройки docker-compose:

version: '3'

services:
  next:
    build: ./next
    container_name: surgut-expert-next
    command: npm run dev
    volumes:
      - ./next:/usr/src/app
    restart: unless-stopped
    ports:
       - "3000:3000"
    networks:
      - surgut-expert-network

  nginx:
    image: nginx:stable-alpine
    container_name: surgut-expert-nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx/nginx.conf.dev:/etc/nginx/conf.d/nginx.conf
    depends_on:
      - next
      - phpmyadmin
      - db
    networks:
      - surgut-expert-network

  db:
    image: mysql
    container_name: surgut-expert-db
    volumes:
      - dbdata:/var/lib/mysql
    restart: always
    ports:
      - "3036:3036"
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: surgut_expert
    networks:
      - surgut-expert-network

  phpmyadmin:
    image: phpmyadmin
    container_name: surgut-expert-phpmyadmin
    restart: always
    ports:
      - "1234:80"
    environment:
      - PMA_ARBITRARY=1
    networks:
      - surgut-expert-network

volumes:
  dbdata:

networks:
  surgut-expert-network:
    driver: bridge


Настройки nginx:
server {
    listen 80;
    server_name surgut.expert.local;
    location / {
        proxy_pass http://next:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host; proxy_cache_bypass $http_upgrade;
    }
}

Как починить? Самое интересное, что пока не ставишь nginx, то все работает нормально, но с nginx перестает.
  • Вопрос задан
  • 779 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы