Разверните приложение nextjs в докере с обратным прокси-сервером nginx на хосте - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь использовать nginx на хост-компьютере в качестве обратного прокси-сервера перед моим приложением nextjs, которое развернуто в режиме роя. Но он всегда показывает ошибку 404 not found с путем типа _next/*****/page/index.js.

Когда я подключаюсь к http://machine-host-name:3000, он работает хорошо, но подключается к http://machine-hos-name/nextjs, показывает ошибку 404, не найденную.

Вот моя настройка nginx

server {
   listen 80 default_server;
   listen [::]:80 default_server;

   index index.html index.htm index.nginx-debian.html;
   server_name _;

   location /nextjs {
       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;

       proxy_pass http://localhost:3000/;
   } 
}

Не уверен, какая часть неверна, пожалуйста, дайте мне несколько советов.

Спасибо.

1 Ответ

0 голосов
/ 09 июля 2018

Этот метод обратного проксирования является анти-паттерном.

  1. Ваш прокси также должен быть в службе роя.
  2. Он должен использовать прокси-агент с поддержкой роя-api, который может обновлять ваш прокси на основе изменений, внесенных роем.

Два хороших из них: Docker Flow Proxy и Traefik .

...