2016-10-11 2 views
0

나는 이런 식으로의 nginx와 PHP를 결합하는 고정 표시기의 작성 파일이 : 나는 내가 가지고있는 가상 호스트와 브라우저에 index.php 페이지, 즉 내 웹 사이트를 볼 수 있습니다수 없음은 고정 표시기 컨테이너 내부에서 실행되는 서버를 소켓에 연결합니다

nginx: 
    image: nginx 
    ports: 
    - "80:80" 
    - "2443:2443" 
    links: 
    - phpfpm 
    volumes: 
    - ./nginx/anonymous.conf:/etc/nginx/conf.d/anonymous.conf 
    - ./logs/nginx-error.log:/var/log/nginx/error.log 
    - ./logs/nginx-access.log:/var/log/nginx/access.log 
    - ./public:/usr/share/nginx/html 

phpfpm: 
    image: php:fpm 
    expose: 
    - "2443" 
    volumes: 
    - ./public:/usr/share/nginx/html 

을 이미 만든

anonymous.com 지금 내 phpfpm 컨테이너 내부에 내가 포트를 듣고있다 Ratchet 기반의 소켓 서버를 시작 말할 수 2443

// bin/server.php 
$webSocketServer = new WsServer(new Chat()); 
$server = IoServer::factory(
     new HttpServer($webSocketServer), 2443); 
$server->run(); 
,363,210

이 내가 이미 2443 노출 된 내 ngnixphpfpm 용기가 연결되어 있기 때문에 내가, phpfpm 용기

php /usr/share/nginx/html/bin/server.php 

나의 이해는 내부에 내 서버를 실행하는 방법입니다. 소켓 서버 phpfpm에서 실행중인 소켓 서버에 연결할 수 있습니다. telnet anonymous.com 2443

하지만 연결되지 않습니다. 여기에 출력

$ telnet anonymous.com 2443 
Trying 127.0.0.1... 
Connected to localhost. 
Escape character is '^]'. 
Connection closed by foreign host. 

내가 모두의 nginx와 PHP-FPM은 하나의 컨테이너에 있던 한 이전 할 때, 모든 일이 잘 작동하고 있습니다에게 있습니다. 그래서 나는 PHP에 아무런 문제가 없다고 확신합니다. 그냥 외부 세계에서 소켓 서버에 액세스하는 방법을 알아낼 수 없습니다.

감사

업데이트 난 내 phpfpm 컨테이너 IP를 사용하고 브라우저의 작업을 미세 통해 포트 2443와 함께 사용합니다. 하지만 그 모든 역동 성으로 컨테이너 IP에 의존 할 수는 없습니다.

답변

0

호스트 이름으로 서비스 이름을 사용해야합니다. 그래서 nginx에서 phpfpm으로 연결하려면`links`에 마음이 편한 phpfpm:2443

+0

을 사용 하시겠습니까? –

+0

아니요, 연결할 호스트 이름입니다. anonymous.com을 사용하지 마십시오. – dnephin

+0

예. 작동합니다. 나는 아직도 내가 무엇을 놓치고 있는지 명확하지 않기 때문에 당신이 대답을 설명하면 좋을 것이다. 감사 –