
Я пытаюсь настроить обратный прокси-сервер для контейнера Docker с помощью nginx.
Docker-контейнер доступен и работает на порту 8000.
Я хотел бы иметь возможность доступа к контейнеру по адресу mydomain.com:80/mycontainer.
Обратный прокси-сервер, похоже, успешно взаимодействует с контейнером, но когда контейнер запрашивает перенаправление на свою страницу входа, nginx пытается загрузить страницу входа на порт 80 вместо 8000, что завершается неудачей.
Вот моя конфигурация nginx на данный момент:
upstream docker-container {
server 127.0.0.1:8000;
}
server {
listen 80;
location /mycontainer {
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://docker-container;
}
}
Вот что я получаю, когда бегу wget -S 127.0.0.1/mycontainer
:
wget -S 127.0.0.1/mycontainer
--2021-08-29 20:30:12-- http://127.0.0.1/mycontainer
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response...
HTTP/1.1 302 Found
Server: nginx/1.18.0 (Ubuntu)
Date: Sun, 29 Aug 2021 20:30:12 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 28
Connection: keep-alive
Content-Language: en
X-Frame-Options: SAMEORIGIN
X-Download-Options: noopen
X-Content-Type-Options: nosniff
Referrer-Policy: origin-when-cross-origin
X-XSS-Protection: 1; mode=block
Location: /login
Vary: Accept
Set-Cookie: some cookie
Location: /login [following]
--2021-08-29 20:30:12-- http://127.0.0.1/login <--- HERE IS THE PROBLEM. Should be 127.0.0.1:8000/login
Reusing existing connection to 127.0.0.1:80.
HTTP request sent, awaiting response...
HTTP/1.1 404 Not Found
Server: nginx/1.18.0 (Ubuntu)
Date: Sun, 29 Aug 2021 20:30:12 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
2021-08-29 20:30:12 ERROR 404: Not Found.
Я ни в коем случае не профессионал в этом деле, поэтому уверен, что ошибок много.
Как сделать так, чтобы автоматические перенаправления указывали на правильный порт (8000), а не на порт 80?