1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rocket.ChatをH2Oのサブフォルダからリバースプロキシ

Last updated at Posted at 2018-06-01

突然Rocket.ChatをH2Oがすでに走っている自分のサーバに構築する必要が生じたので構築したが、一件単純ながら結構ハマって苦しんだので備忘録。

09/04追記

残念ながらいくつかのページ遷移においてサブフォルダからルート直下に飛んでしまう不具合に見舞われたため、手元の環境では結局サブドメインに移転してしまいました。
記事は残しておきますが、以下の項目は真似しないことをお勧めします。

こうする

/etc/h2o/h2o.confより抜粋
hosts:
  "example.com:443":
    paths:
      "/":
        file.dir: "/http/root/directory"
      "/rocketchat":
        proxy.reverse.url: "http://127.0.0.1:3000/rocketchat"
        proxy.websocket: ON

注意点はどこか?

URL指定の仕方

node.js側にはinitから環境変数でROOT_URL=https://example.com/rocketchatを渡すのでH2O側では単にhttp://127.0.0.1:3000/と指定しておかないと重複パスになって死ぬのかと考えがち(私はやらかした)だがそれは間違いで、上記の通りH2O側で改めてサブフォルダを指定しないとUnknown pathなる一行のそっけないエラー表示に目の前を塞がれる。
なおnginxでも同じで、Apacheについては公式ホームページに案内があるので参照のこと

エラー表示について

Rocket.Chatのエラーページは1行テキストだが、H2Oのエラーページも(少なくともリバースプロキシ関連では)1行テキストなので混同に注意。
H2Oからnode.jsに接続できないときにはconnection failedとこれまた1行だけで出てくるがこれはリバースプロキシ先が繋がらないH2Oのエラー。見かけ上はさっぱり区別がつかない。

おまけ

node.jsをLibreSSLシステム上で走らせようとするのは本当に大変なので、予定している人は諦めてOpenSSLを採用しましょう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?