2017-01-16 5 views
0

私は小さな問題を抱えています。誰かが私の開発環境でどのようにこの問題を解決できるか教えてくれることを願っています。Vagrant Docker Nginx遅い解決

私はMacOSを使用しています。これは、共有フォルダのドッカーを使用していて、パフォーマンスが悪いです。

私はもともとユニゾン同期で中間ドッカーコンテナを使用しましたが、それに問題がありました。 (同期がエラー出力なしで予期せず停止するなど)

私はドッキングマシンを起動する仮想マシンを作成しました。 私は小さなphpとnginxの設定で最小限の設定しかしていません。 (ホスト開発IDE内からのコード生成を実行するため)。 Nginxは、dockerコンテナ内からhttp要求にhttpsを転送するように設定されています。 (および80xxポートを取り除く。

ベイグラントは、任意のポートを転送してて(専用ポート80とドッキングウィンドウ内443

から、私は1つの自己nginxのコンテナをコンパイルしたnginxのサーバーを介してアクセス可能ではありません)、いくつかのphp7.1-fpmインスタンス、キューワーカー、mysqlマスタースレーブデータベースなど。 環境は私たちの生産システムのように構築されています

唯一のコアの違いは、最初のnginxが自分のホストとの間にあることですルーティングなどのためのVMです。

私のコアの問題は、現在、最初のnginxサーバーへのリクエストが極端に遅く、なぜ私は実際にその理由がないのですか。ブラウザインスペクタで 私は、接続の6つの状態を見ることができます:

  1. キュー(0)(5-15s)
  2. 解決ドメイン(5-30s)
  3. 古い
  4. リクエスト送信(0.000077 S)
  5. 応答を待っている(0.2秒)
  6. ダウンロード応答(0.0009s)

現在作業中の私の最大の問題は、最初の接続内にのみ現れるステップ2と3と、最後の要求より1分遅れて遅延しているすべての進行中の接続です。

私はまた、ドメインを解決しようとする理由もありません。

しかし、最初のものが最初です。 私の放浪のセットアップ(唯一の重要な部品の相続人は一部:

# -*- mode: ruby -*- 
# vi: set ft=ruby : 
Vagrant.configure("2") do |config| 
... 
    #Network, Port Mapping, Hostname 
    config.vm.network     "forwarded_port", guest: 3306, host: 3306 
    config.vm.network     "forwarded_port", guest: 6379, host: 6379 
    config.vm.network     "private_network", ip: "192.168.56.142" 
    config.hostsupdater.aliases   = ["app.dev", "errbit.dev", "redis.dev", "mailcatcher.dev", "pma.dev", "statsd.dev"] 
    config.vm.hostname     = "docker.test" 
... 
end 

私は一致するドメイン名を使用しますが、別のサービス(PMA ...)のための別のdevの環境を持っているように、私はホストファイルを管理するためにhostmanagerを使用しています。 hostmanagerは、不規則停止時にhostfileからエントリを削除するので便利です。

server { 
    listen 443 ssl; 
    server_name     pma.dev; 

    ssl_certificate    /vagrant/etc/ssl/server.crt; 
    ssl_certificate_key   /vagrant/etc/ssl/server.key; 
    ssl_protocols    TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers     ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AES:RSA+3DES:!ADH:!AECDH:!MD5:!DSS; 
    ssl_prefer_server_ciphers on; 

    location/{ 
     proxy_pass http://localhost:8090; 
     proxy_set_header Host $host; 
    } 
} 

私は任意の方向に助けを考慮にどんな助言を取る:

は、ここに私のホストファイル

## 
# Host Database 
# 
# localhost is used to configure the loopback interface 
# when the system is booting. Do not change this entry. 
## 
127.0.0.1 localhost 
255.255.255.255 broadcasthost 
::1    localhost 

192.168.56.142 docker.test # VAGRANT: d8fa44be6d190c05689a5d1e3c0b4281 (default)/ca8de87a-7a95-4c7d-97df-2a1a4d606dad 
192.168.56.142 app.dev # VAGRANT: d8fa44be6d190c05689a5d1e3c0b4281 (default)/ca8de87a-7a95-4c7d-97df-2a1a4d606dad 
192.168.56.142 errbit.dev # VAGRANT: d8fa44be6d190c05689a5d1e3c0b4281 (default)/ca8de87a-7a95-4c7d-97df-2a1a4d606dad 
192.168.56.142 redis.dev # VAGRANT: d8fa44be6d190c05689a5d1e3c0b4281 (default)/ca8de87a-7a95-4c7d-97df-2a1a4d606dad 
192.168.56.142 mailcatcher.dev # VAGRANT: d8fa44be6d190c05689a5d1e3c0b4281 (default)/ca8de87a-7a95-4c7d-97df-2a1a4d606dad 
192.168.56.142 pma.dev # VAGRANT: d8fa44be6d190c05689a5d1e3c0b4281 (default)/ca8de87a-7a95-4c7d-97df-2a1a4d606dad 
192.168.56.142 statsd.dev # VAGRANT: d8fa44be6d190c05689a5d1e3c0b4281 (default)/ca8de87a-7a95-4c7d-97df-2a1a4d606dad 
10.211.55.26 docker.test.shared docker.test #prl_hostonly shared 

VMドッカーnginxののホストファイルです。 私は既にいくつかのアップデートを試みましたが、これまで解決できませんでした。 私は別のものを設定する必要があることを誰かが私に手がかりを与えてくれることを願っています。 さらに詳しい情報が必要な場合は、お気軽にお問い合わせください。

答えて

0

Wiresharkでネットワークトラフィックを確認したところ、問題が見つかりました。 私はapp.devでdigを実行しました。私はip 127.0.53.53が検出されたことを認識しました。 Wiresharkを調べた後、私は.devドメインへのすべてのアクセスがローカルホストファイルではなくパブリックDNSサーバーに照会されることを認識しました。

ホストのファイルをチェックするのではなく、macOSではすべての.devドメインが照会されるようです。 このリクエストのために、通常は長い時間がかかります。 すべてのドメインを.testに切り替える

関連する問題