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に接続しています。
/etc/nginx/conf.dディレクトリからconfファイルを読み取らない理由を確認することで、あなたのejabberdサーバ稼働しているのですか? –
はい、ejabberdサーバーが起動しています。 –
複数の可動部品の問題を特定するのに役立ちます。 http://192.168.99.102/ nginxと話しています。 http://j7.0.0.1:5200/ ejabberdを持ち上げていますか? 'docker-compose exec nginx ping ejabberd'は応答しますか? – BMitch