2016-06-20 4 views
0

dockerでnginxを使用してejabberd接続マネージャを逆プロキシしようとしています。 16.04とのmysql:5.6は私の地元のドッキングウィンドウでご利用いただけます続きnginxからアップストリームサーバーへアップストリームを転送する方法

は私のドッキングウィンドウ・コンファイル

version: '2' 
services: 
    nginx: 
    image: nginx 
    ports: 
     - "80:80" 
     - "443:443" 
    depends_on: 
     - ejabberd 
    links: 
     - ejabberd 
    ejabberd: 
    image: ejabberd:16.04 
    depends_on: 
     - mysql 
    ports: 
     - "5280:5280" 
    links: 
     - mysql 
    mysql: 
    image: mysql:5.6 
    ports: 
     - "3306:3306" 

画像nginxのejabberdです。続き

はnginx.confファイルに含まれている

upstream ejabberd-server { 
     server ejabberd:5280; 
} 
server { 
    # regular silverstripe things here 

    # location should match your JabberPage::BOSHUrl 
    # with a leading slash 
    listen 80; 
    #server_name oops.hereim.co 

    location /http-bind { 
     # Local ejabberd with http-bind 
     proxy_set_header X-Forwarded-Host $host; 
     proxy_set_header X-Forwarded-Server $host; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass http://ejabberd-server; 
    } 

} 

私のサーバーの設定ファイルである。しかし、私は、URLにhttp://192.168.99.102/http-bind

にアクセスしようとすると、私はエラー404が見つからない取得します。

上記の設定で何か不足していますか?

192.168.99.102は私のドッカーマシンのIPです。

docker-compose exec nginx ping ejabberd 

上記のコマンドは返信を返します。

nginxとejabberdが同じejabberdコンテナにないため、アップストリームはejabberdをホストするようにセットアップする必要があります。

docker-compose.ymlが表示された場合、ejabberdとmysqlの接続は正常に動作し、ejabberdのmysqlに接続できます。しかし、いくつかの欠けている部分があるようですが、nginxをejabberdに接続しています。

+0

/etc/nginx/conf.dディレクトリからconfファイルを読み取らない理由を確認することで、あなたのejabberdサーバ稼働しているのですか? –

+0

はい、ejabberdサーバーが起動しています。 –

+0

複数の可動部品の問題を特定するのに役立ちます。 http://192.168.99.102/ nginxと話しています。 http://j7.0.0.1:5200/ ejabberdを持ち上げていますか? 'docker-compose exec nginx ping ejabberd'は応答しますか? – BMitch

答えて

0

問題はおそらくnginxの問題によるものです。 nginxは.confファイルを/etc/nginx/conf.dディレクトリの下に持ちません。

ファイル/ etc/nginx/sites-enabled/defaultを変更して、そのファイル内の場所を入力する必要がありました。これは私のこの問題の問題を解決しました。

次のアクション項目は、nginxのは

0

上流のserver部分が少し間違っているようです。

server ejabberd:5280;の代わりにserver 127.0.0.1:5280;を試すことができますか?

+0

nginxとejabberdは異なるドッカーコンテナで動作しているため、localhostや127.0.0.1は役に立ちません。 –

関連する問題