web-dev-qa-db-ja.com

IPでキャディサーバーにアクセスする

私はdockerのウェブサイトを持っており、生産にはキャディを使用しています。これは私の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 キャディ構成はcompose/production/caddy /私が実行している構成も「production.yml」にあります

11
Marcos Aguayo

Django settings.pyには、許可されたホストとしてmydomain.comのみがあり、IPではありませんか?そうすれば、サーバーは「このインターフェースでは提供されません」のようなものを返すはずであり、ドメイン名が使用されているときには返すべきではありません。キャディーではなく、ApacheでもUbuntuで同様の問題が発生しました。それは正しいので、キャディーの設定を変更しても問題が解決しない理由も説明します。

settings.pyのような行が必要です

ALLOWED_HOSTS = [IP, 'mydomain.com']

このパラメーターの詳細については、 ドキュメント内 を参照してください。

これがお役に立てば幸いです。

1
creyD