У меня есть веб-сайт с докером, и я использую 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']
Подробнее об этом параметре можно узнать из документации.
Я надеюсь, это поможет вам.