环境说明
主机名 | IP | 系统 | 角色 |
---|---|---|---|
demo18 | 192.168.10.18 | Ubuntu 16.04 | server |
demo20 | 192.168.10.20 | Ubuntu 16.04 | server |
demo21 | 192.168.10.21 | Ubuntu 16.04 | server |
https://www.consul.io/downloads.html
https://github.com/weibocom/nginx-upsync-module
https://github.com/xiaokai-wang/nginx_upstream_check_module
编译nginx1
2
3
4
5
6
7
8
9
10
11
12
13
14
15cd /usr/local/src/
git clone https://github.com/xiaokai-wang/nginx_upstream_check_module
git clone https://github.com/weibocom/nginx-upsync-module
wget https://openresty.org/download/openresty-nginx-1.13.6.tar.gz
tar xf openresty-1.15.8.2.tar.gz
cd openresty-1.15.8.2
/usr/local/src/openresty-1.13.6.2/bundle/nginx-1.13.6
patch -p1 < /usr/local/src/nginx_module/nginx_upstream_check_module/check_1.12.1+.patch
./configure --prefix=/usr/local/openresty --add-module=/usr/local/src/nginx_module/nginx_upstream_check_module --add-module=/usr/local/src/nginx_module/nginx-upsync-module
make -j 20 && make install
1 | wget https://releases.hashicorp.com/consul/1.6.1/consul_1.6.1_linux_amd64.zip |
手动运行集群命令1
2
3consul agent -server -bootstrap-expect 3 -ui -node=consul-1 --data-dir=/data/consul -bind=192.168.10.18 -client 0.0.0.0
consul agent -server -bootstrap-expect 3 -ui -node=consul-2 --data-dir=/data/consul -bind=192.168.10.20 -client 0.0.0.0
consul agent -server -bootstrap-expect 3 -ui -node=consul-3 --data-dir=/data/consul -bind=192.168.10.21 -client 0.0.0.0
1 | useradd --system --home /data/consul --shell /bin/false consul |
1 | cat << EOF > /etc/consul.d/consul.json |
https://www.consul.io/docs/agent/options.html#configuration_files
https://www.consul.io/docs/install/performance.html
https://learn.hashicorp.com/consul/datacenter-deploy/deployment-guide
1 | cat << EOF > /etc/systemd/system/consul.service |
1 | consul members -http-addr=192.168.10.18:8500 |
curl -X PUT -d ‘{“weight”:10, “max_fails”:2, “fail_timeout”:10, “down”:0}’ http://192.168.10.21:8500/v1/kv/upstreams/pic_backend/192.168.10.21:80
curl -X PUT http://192.168.10.21:8500/v1/kv/upstreams/up1/192.168.10.21:80
curl -X PUT http://192.168.10.18:8500/v1/kv/upstreams/up1/192.168.10.21:83
curl -X PUT http://192.168.10.18:8500/v1/kv/upstreams/up1/192.168.10.18:83
consul info -http-addr=192.168.10.18:8500
consul operator raft list-peers
curl -X PUT http://192.168.1.200:8500/v1/kv/upstreams/api_im_any/192.168.1.43:8882
curl -X PUT http://192.168.1.200:8500/v1/kv/upstreams/api_im_any/192.168.1.46:8882
curl -X PUT http://192.168.1.200:8500/v1/kv/upstreams/api_im_xwx/192.168.1.43:8882
curl -X PUT http://192.168.1.200:8500/v1/kv/upstreams/api_im_xwx/192.168.1.46:8882
curl -X PUT http://192.168.1.91:8500/v1/kv/upstreams/im_test/192.168.1.46:80
curl -X PUT http://192.168.1.200:8500/v1/kv/upstreams/wss_im_xwx/192.168.1.43:8883
curl -X PUT http://192.168.1.200:8500/v1/kv/upstreams/wss_im_xwx/192.168.1.46:8883
curl -X PUT http://192.168.1.200:8500/v1/kv/upstreams/wss_im_any/192.168.1.43:8883
curl -X PUT http://192.168.1.200:8500/v1/kv/upstreams/wss_im_any/192.168.1.46:8883`
https://wxnacy.com/2018/05/24/nginx-upsync/