inxはmysqlの負荷バランスを実現します。

2783 ワード

デフォルトのNginxはhttpの逆エージェントだけをサポートしています。inxがtcpの逆エージェントをサポートするためには、コンパイル時にtcpエージェントモジュールのサポートを追加する必要があります。tcp_proxymodule
以下の操作手順は、nginxにtcp_のみをサポートさせます。proxyは、prce、gzip、sslなどの機能を追加していません。必要であれば、自分でコンパイルする時に関連パラメータを加えてもいいです。
wget https://github.com/yaoweibin/nginx_tcp_proxy_module/archive/master.zipunzip master
 tar -zxvf nginx-1.6.3.tar.gz 
cd nginx-1.6.3
patch -p1 < ../nginx_tcp_proxy_module-master/tcp.patch 
./configure --add-module=../nginx_tcp_proxy_module-master --prefix=/usr/local/nginx-1.6.3 --with-http_stub_status_module --with-http_gzip_static_module
make
make install
nginx.com nf主な構成ファイルには、以下の構成が追加されています。
user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

include /usr/local/nginx-1.6.3/conf/tcp_proxy.conf;

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       3306;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

	location /nginx_status {
	    stub_status on;
            access_log  logs/nginx_status.log;
	    allow 10.195.197.124;
	    deny all;
	}

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}
include/usr/local/inx-1.6.3/conf/tcp_proxy.com
tcp {
    upstream mysql {
        server 10.207.238.66:3306;
        server 10.207.238.67:3306;
 
        check interval=3000 rise=2 fall=5 timeout=1000;
        #check interval=3000 rise=2 fall=5 timeout=1000
        #check interval=3000 rise=2 fall=5 timeout=1000
        #check_http_send "GET /HTTP/1.0\r
\r
";         #check_http_expect_alive http_2xxhttp_3xx;     }       server { listen 3307;         proxy_pass mysql;     } }
説明:check interval健康診断は、単位がミリ秒rise検査で何回か正常になったら、relserverを負荷リストに追加してfall検査で何回か失敗した後、realservertimeout検査のタイムアウト時間を摘出します。単位は約ミリ秒で具体的にnginxを確認できます。tcp_proxymodule-master/README、とても詳しいです。