2016-12-22 16 views
2

を読み取ることができない私は、次のHaproxy設定があります。私は非既存のドメインのURLをヒットするとHaproxy ERRORFILEは

frontend http-in 
    mode http 
    bind :80 

    option forwardfor 
    option httplog 
    reqadd X-Forwarded-Proto:\ http 

    default_backend http-routers 

    errorfile 502 /var/haproxy/404.http 
    acl is_internal_error status eq 404 
    rspdeny . if is_internal_error 

を、例:http://test.example.com 私はタイムアウトエラー(408)を受け取ります。

しかし、errorfile 502 /var/haproxy/404.http行を取得すると、デフォルトエラーメッセージ502のエラーコードが表示されます。

Haproxyが私のファイルを読むことができない理由を教えてもらえますか?

答えて

0

権限のような音がバットですぐに問題になります。どのユーザーがhaproxyとして実行していますか? /var/haproxy/404.httpの権限を投稿できますか?

+1

ハプロキシはルートとして実行されます。 /var/haproxy/404.httpのパーミッションを777(chmod 777)に変更しました。それでも同じ問題です –

+0

根本的な原因はAWS ELBだと思われます。実際、HAproxyはAWS ELBの背後にあります。 ELBを削除すると、私はカスタムエラーページを取得できます。しかし、ELBをHaproxyの前に置くと、 'HTTP/1.1 504 GATEWAY_TIMEOUT Content-Length:0 Connection:keep-alive'となります。誰が私に何が起こっているか教えてもらえますか?ありがとう。 –

+0

この問題で解決しました。http://stackoverflow.com/questions/43376997/haproxy-behind-elb –

0

これはHaproxy behind ELBと重複していると思います。

TL; DR; erro_file改行形式の問題。 HTTPのINFO行には^ Mが必要ですが、応答本体には必要ありません。 理由はわかりませんが、そのように動作します。それが役に立てば幸い。 Example fileには、vi(m)で開いているものがあります。内容をコピーしないで、同じように見えますが、そうではありません。

乾杯