Доступ к серверу Caddy по IP

У меня есть веб-сайт с докером, и я использую Caddy для производства. Это моя конфигурация на моем Caddyfile

mydomain.com {
    proxy / django:5000 {
        header_upstream Host {host}
        header_upstream X-Real-IP {remote}
        header_upstream X-Forwarded-Proto {scheme}
        header_upstream X-CSRFToken {~csrftoken}
    }
    log stdout
    errors stdout
    gzip
}

Эта конфигурация хорошо работает, когда я использую mydomain.com, но когда я пытаюсь получить доступ к серверу по IP, он возвращает мне следующую ошибку:

404 Site 156.130.11.8 is not served on this interface

Я пытался использовать *, 156.130.11.8 и :80

* {
    proxy / django:5000...
    ...

156.130.11.8 {
    proxy / django:5000...
    ...

Ничего из этого тоже не работает, кто-нибудь из вас знает, как я могу это решить?

РЕДАКТИРОВАТЬ: Код здесь: https://github.com/maguayo/django-starter-api Конфигурация Caddy находится в compose/production/caddy/, а также запущенная мной конфигурация находится на " production.yml "

Ответ 1

Согласно этим урокам:

https://www.digitalocean.com/community/tutorials/how-to-host-a-website-with-caddy-on-ubuntu-16-04

https://www.booleanworld.com/host-website-caddy-web-server-linux/

https://caddyserver.com/tutorial/caddyfile

ваш сервер Caddy должен обслуживать веб-сайт на вашем ip через порт 80, используя одну из следующих конфигураций:

* {
    proxy / django:5000...
    ...

156.130.11.8 {
    proxy / django:5000...
    ...

:80 {
    proxy / django:5000...
    ...

http:// {
    proxy / django:5000...
    ...

Может быть, http://156.130.11.8 { proxy/django:5000... } выполнит эту работу. Также попробуйте использовать localhost вместо ip-адреса следующим образом:

localhost {
    proxy / django:5000...
    ...
}

http://localhost {
    proxy / django:5000...
    ...
}

Удачи!

Ответ 2

Возможно ли, что ваш Django settings.py имеет только mydomain.com в качестве разрешенного хоста, а не IP? Таким образом, сервер должен возвращать что-то вроде "не обслуживается на этом интерфейсе", и это не должно происходить, когда используется доменное имя. Я столкнулся с подобной проблемой некоторое время назад, не с Caddy, а с Apache и в Ubuntu. Это также объясняет, почему изменение конфигурации Caddy не решает проблему, поскольку это правильно.

settings.py должна иметь такую строку

ALLOWED_HOSTS = [IP, 'mydomain.com']

Подробнее об этом параметре можно узнать из документации.

Я надеюсь, это поможет вам.