У меня есть простой сайт 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/
, он ответит нормально.)
Что делает это еще более странным:
- Только определенные ссылки, особенно в меню заголовка, сделайте это.
- Я использовал десятки тем Ху 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