2016-11-01 5 views
2

I'cant подключения к WebSocket с использованием Докер КонтейнерыDocker не может подключиться к WebSocket PHP

Мой докер-compose.yml:

` 
version: "2" 
services: 
db: 
    image: mysql 
    ports: 
     - 3306:3306 
    volumes: 
     - "./.data/db:/var/lib/mysql" 
    environment: 
     MYSQL_ROOT_PASSWORD: "qwerty" 
     MYSQL_DATABASE: "web_face" 
     MYSQL_USER: "web_face" 
     MYSQL_PASSWORD: "qwerty" 
php: 
    build: php7-fpm 
    ports: 
     - 9000:9000 
     - 3333:3333 
    links: 
     - db:mysqldb 
    volumes: 
     - ../www/:/var/www/symfony 
     - ../logs/symfony:/var/www/symfony/app/logs 
     - ../logs/php:/data/log/phpfpm/ 
nginx: 
    build: nginx 
    ports: 
     - 80:80 
    links: 
     - php 
    volumes_from: 
     - php 
    volumes: 
     - ../logs/nginx/:/var/log/nginx 

Но когда я пытаюсь подключиться Rachet WebSocket сервер I имеют ошибку: Соединение с WebSocket с «ws: //127.0.0.1/» не выполнено: ошибка во время рукопожатия WebSocket: неожиданный код ответа: 200

ответ

0

Вы изменили конфигурацию nginx для правильного установления рукопожатия веб-памяти?

Вам нужно конфигурацию, аналогичную следующей:

server { 
    listen  80; 

    upstream websocket { 
     server php:9000; 
    }  

    location/{ 
     proxy_pass  http://websocket; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "Upgrade"; 

     proxy_connect_timeout 7d; 
     proxy_send_timeout 7d; 
     proxy_read_timeout 7d; 
    } 
} 

Вы можете прочитать об этом в nginx documentation