Linuxでperlダンサーと遊んでいて、ブラウザがLAN経由で直接サーバーに接続しているといいです。しかし、WAN とを介して接続すると、ブラウザはIE9になり、ビジー状態のカーソルが消えないことがあります。GETリクエストを読むとダンサーがランダムにハングします
私はページapxを10回連続してリロードすることでこれを誘発することができます。各リロードの間に秒単位で待っていてもこの問題が発生します。ページ自体は非常に単純で、w3cチェックを渡します。
ダンサーをrootとして実行しても、ポートが80または3000であっても差はありません。また、Apacheのページを頻繁に再読み込みして問題がないように見えます。
私はstraceを実行しましたが、ダンサーがそれを読み込もうとしているときにリクエストデータが利用できないことがあるという印象があります。これは、それが動作すると、トレースが
次のようになります。
{sa_family=AF_INET, sin_port=htons(52073), sin_addr=inet_addr("78.42.213.92")}, [16]) = 4
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfab5028) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(4, 0, 0xbfab5070, SEEK_CUR) = -1 ESPIPE (Illegal seek)
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfab5028) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(4, 0, 0xbfab5070, SEEK_CUR) = -1 ESPIPE (Illegal seek)
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getpeername(4, {sa_family=AF_INET, sin_port=htons(52073), sin_addr=inet_addr("78.42.213.92")}, [16]) = 0
read(4, "G", 1) = 1
read(4, "E", 1) = 1
read(4, "T", 1) = 1
それは
{sa_family=AF_INET, sin_port=htons(52225), sin_addr=inet_addr("78.42.213.92")}, [16]) = 4
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfab5028) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(4, 0, 0xbfab5070, SEEK_CUR) = -1 ESPIPE (Illegal seek)
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfab5028) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(4, 0, 0xbfab5070, SEEK_CUR) = -1 ESPIPE (Illegal seek)
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getpeername(4, {sa_family=AF_INET, sin_port=htons(52225), sin_addr=inet_addr("78.42.213.92")}, [16]) = 0
read(4,
がハングアップし、それが永遠に座っているとき。私ができることは何ですか?
私は、HTTP9 :: Server :: SimpleのPlackで動作するDancerのIE9ホールドロックも見たことがあります。私の暫定的な解決策はFirefoxを使用することでした。私の長期的な解決策は、ある時点でPlackでより高いレベルのWebサーバーを使用することでした。 Dancerは、@ wesのソリューションと同様に、nginxなどのさまざまなWebサーバーの設定に関するドキュメントを提供しています。 –
@wes私はダンサーをApacheの後ろに置き、すべてがうまくいくようです。ありがとう –