2016-11-01 6 views
2

I'cant Dokerコンテナを使用してのWebSocketへの接続の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 

しかし、私はラチェットのWebSocketサーバのIに接続しようとしているときエラー: 'ws://127.0.0.1/'へのWebSocket接続に失敗しました:WebSocketハンドシェイク中のエラー:予期しない応答コード:200

答えて

0

WebSocketハンドシェイクを正しく処理するように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

でそれについての詳細を読むことができます:

は、次のような設定が必要