Mirakurunを外部からアクセスするのにApache2のリバースプロキシを使用してみた。これならDigest認証をApache側でやったり、バーチャルホストでサブドメインで管理できたりして便利そうだし。でもMirakurunの作者もリバースプロキシの下に置かないでくださいって言ってるので本当はやってはいけません…ちょっと設定するときだけ使いたかったので…
まずはMirakurun側の設定。Hostnameをちゃんと設定しないとリバースプロキシからアクセスするとJavaScript系が全部403で弾かれてこまった…
sudo EDITOR=nano mirakurun config server
で設定ファイルを開いて、hostnameがもうあるならそちらを編集して、ない場合は追加する。
# logLevel: <number> logLevel: 2 # path: <string> path: /var/run/mirakurun.sock # port: <number> # You can change this if port conflicted. # Don't expose this port on the internet, not even with NAPT. # Use this in LAN or VPN. # `~` to disable TCP port listening. port: 40772 hostname: mk.hoge.f5.si
こんな感じでhostnameに使用するDDNSのアドレスを入れて保存する。
sudo mirakurun restart
で再起動する。
次にApache2の設定。
sudo nano /etc/apache2/sites-available/000-default.conf
設定するコンフィグファイルを開いて、バーチャルホストを追加。
<VirtualHost *:80>
ServerName mk.hoge.f5.si
<IfModule mod_proxy.c>
ProxyRequests Off
ProxyPreserveHost Off
ProxyErrorOverride Off
ProxyPass /rpc ws://127.0.0.1:40772/rpc
ProxyPassReverse /rpc ws://127.0.0.1:40772/rpc
ProxyPass / http://127.0.0.1:40772/
ProxyPassReverse / http://127.0.0.1:40772/
</IfModule>
</VirtualHost>ここでWebSocketの部分も追加しておかないとメインページしか表示されなくて焦った。認証とかは適宜追加しておく。
sudo a2enmod proxy proxy_wstunnel sudo service apache2 restart
これで設定が有効になってるはず。
今回ハマったのはMirakurun側のHostnameがちゃんと設定されてないとうまくアクセスできない(mDNSとかでアクセスする際もちゃんと設定しておかないとIPからじゃないと行けないかも)のと、Apache側でWebSocketもリバースプロキシ設定してやらないと行けないところ。/rpcのところは/rpc/だと行けなかったり色々ハマってしまったのでまた設定するとき用のメモでした。
Mirakurunは外部ネットワークからアクセスする想定ではないので本来はVPNとかを使ったほうが良いかも。とりあえず設定が終わったらアクセスできないように設定しておいたほうがよいですな。
0 件のコメント:
コメントを投稿