Linux初心者がHAProxyを導入する

Linuxサーバー
CentOS 7

えー、まず、私はあまりLinuxサーバーのことを中途半端にしか理解していません…。時々しか触らないからです…。
しかし、今回サーバーをやってくれる人が忙しいので、RatchetというWebsocketのプログラムを動作させるために、やむなくやりました。

Ratchetを利用してPHPでWebソケット 2 デプロイ編

Ratchetのデプロイのページに書いてあるやり方でまずやります。

http://socketo.me/docs/deploy

途中試行錯誤多いのですが、記録として残しておきます。

まず、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/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です