나는 이런 식으로의 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
노출 된 내 ngnix
및 phpfpm
용기가 연결되어 있기 때문에 내가, 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에 의존 할 수는 없습니다.
을 사용 하시겠습니까? –
아니요, 연결할 호스트 이름입니다. anonymous.com을 사용하지 마십시오. – dnephin
예. 작동합니다. 나는 아직도 내가 무엇을 놓치고 있는지 명확하지 않기 때문에 당신이 대답을 설명하면 좋을 것이다. 감사 –