Ссылка на тему Hu go относится к порту контейнера в Docker / Nginx - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть простой сайт stati c, созданный с помощью Hu go, который я создаю для Docker контейнера, работающего Nginx. Nginx прослушивает порт 90. Я сталкиваюсь со странным поведением, когда некоторые ссылки пытаются открыть порт контейнера , а не порт хоста (в случае localhost это 8000). Так, например, эта ссылка:

<a href="/documents">Docs</a>

... при наведении мыши показывает, что он попытается открыть localhost:8000/documents, что правильно, но при нажатии он пытается вместо этого открыть http://localhost:90/documents/ ( Если я вручную изменю URL-адрес в браузере на http://localhost:8000/documents/, он ответит нормально.)

Что делает это еще более странным:

  1. Только определенные ссылки, особенно в меню заголовка, сделайте это.
  2. Я использовал десятки тем Ху go, и я столкнулся с этой проблемой только с одной из них: ZDo c. Можно ли указать эту тему c? Это кажется мне странным.

Что может быть причиной этого? Я изо всех сил пытаюсь даже знать, как называется это явление. «Путаница порта хоста / контейнера»?

Я уверен, что это не неправильная конфигурация Nginx или Docker. Я правильно выставляю порт 90 в своем Dockerfile:

EXPOSE 90

nginx.conf настроен на прослушивание этого порта:

http {
    include    /etc/nginx/mime.types;
    sendfile on;
    server {
        root /usr/share/nginx/html/;
        index index.html;
        server_name localhost;
        listen 90;
    }
}

И я запускаю контейнер Docker с хост-портом 8000 переадресация на порт Nginx прослушивает:

docker run --name my-simple-site -p 8000:90 -d simple-site

$ docker ps
CONTAINER ID    IMAGE          COMMAND                  CREATED          STATUS          PORTS                   NAMES
de9cd1526034    simple-site    "nginx -g 'daemon of…"   41 minutes ago   Up 41 minutes   0.0.0.0:8000->90/tcp    my-simple-site

1 Ответ

0 голосов
/ 15 февраля 2020

Как ни странно, исправление для этого состояло в том, чтобы изменить ссылку так, чтобы она указывала прямо на файл: <a href="/documents/index.html">Docs</a>

Мне неясно, почему, и мне бы хотелось немного разобраться в этом. Nginx выводит порт при указании на каталог?

...