assuming your local ip address is 192.168.86.194
curl -L -o otoroshi.jar 'https://dl.bintray.com/maif/binaries/otoroshi.jar/1.4.6/otoroshi.jar'
# or
curl -L -o otoroshi.jar 'https://dl.bintray.com/maif/binaries/otoroshi.jar/snapshot/otoroshi.jar'
curl -X POST -H 'Content-Type: application/json' -H 'Host: otoroshi-api.foo.bar' http://127.0.0.1:8080/api/services -u admin-api-apikey-id:admin-api-apikey-secret -d '
{
"groupId": "default",
"name": "my-service",
"env": "prod",
"domain": "foo.bar",
"subdomain": "test",
"targets": [
{
"host": "neverssl.com",
"scheme": "http"
}
],
"root": "/",
"enabled": true,
"forceHttps": false,
"enforceSecureCommunication": false,
"publicPatterns": [
"/.*"
]
}
'
java -Dotoroshi.cluster.mode=leader -jar otoroshi.jar
java -Dotoroshi.cluster.mode=worker -Dhttp.port=8081 -Dhttps.port=8082 -jar otoroshi.jar
docker run -p 6379:6379 -v ./data/standalone-redis-data:/data redis:4.0.8 redis-server --appendonly yes
java -Dapp.storage=redis -Dotoroshi.cluster.mode=leader -jar otoroshi.jar
java -Dapp.storage=redis-lf -Dotoroshi.cluster.mode=leader -jar otoroshi.jar
java -Dotoroshi.cluster.mode=worker -Dhttp.port=8081 -Dhttps.port=8082 -jar otoroshi.jar
touch docker-compose.yml
touch sentinel1.conf
touch sentinel2.conf
touch sentinel3.conf
version: '3'
services:
redis1:
image: redis:3.2-alpine
expose:
- 6379
volumes:
- ./data/redis1-data:/data
ports:
- 6401:6379
sentinel1:
image: redis:3.2-alpine
expose:
- 26379
ports:
- 26401:26379
volumes:
- ./sentinel1.conf:/etc/sentinel.conf
- ./data/sentinel1-data:/data
command: redis-server /etc/sentinel.conf --sentinel
redis2:
image: redis:3.2-alpine
expose:
- 6379
ports:
- 6402:6379
volumes:
- ./data/redis2-data:/data
sentinel2:
image: redis:3.2-alpine
expose:
- 26379
ports:
- 26402:26379
volumes:
- ./sentinel2.conf:/etc/sentinel.conf
- ./data/sentinel2-data:/data
command: redis-server /etc/sentinel.conf --sentinel
redis3:
image: redis:3.2-alpine
expose:
- 6379
ports:
- 6403:6379
volumes:
- ./data/redis3-data:/data
sentinel3:
image: redis:3.2-alpine
expose:
- 26379
ports:
- 26403:26379
volumes:
- ./sentinel3.conf:/etc/sentinel.conf
- ./data/sentinel3-data:/data
command: redis-server /etc/sentinel.conf --sentinel
sentinel monitor my_redis_master 192.168.86.194 6401 3
sentinel down-after-milliseconds my_redis_master 3000
sentinel failover-timeout my_redis_master 10000
sentinel parallel-syncs my_redis_master 1
sentinel monitor my_redis_master 192.168.86.194 6401 3
sentinel down-after-milliseconds my_redis_master 3000
sentinel failover-timeout my_redis_master 10000
sentinel parallel-syncs my_redis_master 1
sentinel known-slave my_redis_master 192.168.86.194 6402
sentinel monitor my_redis_master 192.168.86.194 6401 3
sentinel down-after-milliseconds my_redis_master 3000
sentinel failover-timeout my_redis_master 10000
sentinel parallel-syncs my_redis_master 1
sentinel known-slave my_redis_master 192.168.86.194 6403
docker-compose up
java \
-Dapp.storage=redis-sentinel-lf \
-Dapp.redis.cluster.sentinels.lf.members.0.host=192.168.86.194 \
-Dapp.redis.cluster.sentinels.lf.members.1.host=192.168.86.194 \
-Dapp.redis.cluster.sentinels.lf.members.2.host=192.168.86.194 \
-Dapp.redis.cluster.sentinels.lf.members.0.port=26401 \
-Dapp.redis.cluster.sentinels.lf.members.1.port=26402 \
-Dapp.redis.cluster.sentinels.lf.members.2.port=26403 \
-Dapp.redis.cluster.sentinels.lf.master=my_redis_master \
-Dotoroshi.cluster.mode=leader \
-jar otoroshi.jar
java -Dotoroshi.cluster.mode=worker -Dhttp.port=8081 -Dhttps.port=8082 -jar otoroshi.jar
docker-compose down
curl -H 'Host: test.foo.bar' http://127.0.0.1:8080
curl -H 'Host: test.foo.bar' http://127.0.0.1:8081