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입니다. 다음
내가 URL을 나는 오류 (404)를 얻을 수 http://192.168.99.102/http-bind
을 액세스 할 때
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;
}
}
그러나 찾을 수 없습니다 nginx.conf 파일에 포함되어 내 서버 설정 파일입니다 .
위의 구성에서 뭔가가 누락 되었습니까?
192.168.99.102은 내 도커 컴퓨터의 IP입니다.
docker-compose exec nginx ping ejabberd
위의 명령은 응답을 반환합니다.
nginx와 ejabberd가 동일한 ejabberd 컨테이너에 있지 않으므로 업스트림을 ejabberd를 호스트하도록 설정해야합니다.
docker-compose.yml이 보이면 ejabberd와 mysql 연결이 제대로 작동하고 ejabberd에서 mysql에 연결할 수있다. 하지만 ejabberd에 연결하는 동안 누락 된 부분이있는 것 같습니다.
이 ejabberd 서버 및 실행 읽기하지 않는 이유를 확인하는 것입니다? –
예, ejabberd 서버가 실행 중입니다. –
여러 움직이는 부분의 문제를 격리하는 데 도움이됩니다. http://192.168.99.102/ nginx와 (과) 얘기하고 있습니다. http://127.0.0.1:5200/ ejabberd를 불러오고 있습니까? 'docker-compose exec nginx ping ejabberd'가 응답합니까? – BMitch