Linuxサーバー
CentOS 7
えー、まず、私はあまりLinuxサーバーのことを中途半端にしか理解していません…。時々しか触らないからです…。
しかし、今回サーバーをやってくれる人が忙しいので、RatchetというWebsocketのプログラムを動作させるために、やむなくやりました。
Ratchetを利用してPHPでWebソケット 2 デプロイ編
Ratchetのデプロイのページに書いてあるやり方でまずやります。
途中試行錯誤多いのですが、記録として残しておきます。
まず、HAProxyの公式サイトがこれっ!
http://www.haproxy.org/
うわー、わかりにくっ。。。
しかし、とりあえず、現時点(2016/12/20)での最新の安定版が1.7.1なので、次の通りにやります。
wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.1.tar.gz tar -zxvf haproxy-1.7.1.tar.gz cd haproxy-1.7.1.tar.gz make install
で、この
make
で、
make: no rule to make target
というエラーが出て、先に進めません…。
早速涙目。。。
昔はちゃちゃっとmakeでできた気がするのに…。
サーバー担当者に聞いたところ
「yumでやりなよ!!なんでmakeとか使うの!!(怒)&angry;」
と言われました。
しかし、yumでは1.5.18しか入れられないのです…。
目的のことができるでしょうか?不安が立ち込めますね!!
とりあえず、
yum install haproxy
でhaproxyをインスコします。
はぁー 簡単! yum やっぱ便利!!
設定ファイルを次のように作って、/etc/haproxy.cfg に保存します。
global log 127.0.0.1 local0 maxconn 10000 user haproxy group haproxy daemon defaults mode http log global option httplog retries 3 backlog 10000 timeout client 30s timeout connect 30s timeout server 30s timeout tunnel 3600s timeout http-keep-alive 1s timeout http-request 15s frontend public bind *:80 acl is_websocket hdr(Upgrade) -i WebSocket use_backend ws if is_websocket #is_websocket_server default_backend www backend ws server ws1 127.0.0.1:1337 backend www timeout server 30s server www1 127.0.0.1:1338
んで、できたら、haproxyを動かすぞ!と次のをドン
$ sudo haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid -D
すると、次のエラーが出てしまいます。
Haproxy cant bind [0.0.0.0:80]
ほうほう…
80番ポートはApacheが使っているから、ってことね。
httpd.confの
Listen 80
を
Listen 1338
にします。
ふたたび ドン!
$ sudo haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid -D
これで、なんとか動作しました!!!
ログの取り方などは、下記に親切に書かれています。
http://qiita.com/saka1_p/items/3634ba70f9ecd74b0860
ちなみに、HAProxyさんのブログのWebソケットの説明がわかりやすかったので、載せておきます。
http://blog.haproxy.com/2012/11/07/websockets-load-balancing-with-haproxy/