forked from zihuaye/3xsd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
3xsd.conf
139 lines (111 loc) · 5.61 KB
/
3xsd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
[3fsd]
#poll = stage,ip,ip..;stage,ip,ip...
#stage 0 has 10.37.10.1-10,10.38.10.1-10 port 80, stage 1 has 10.41.0.1-100 port 8000
#vm0 = 0,10.37.10.1-10:80,10.38.10.1-10:80;1,10.41.0.1-100:8000
#vm0 = 0,10.39.10.1:80,10.38.10.2:80;1,10.41.0.1:8000,10.41.0.2:80;1,10.42.0.1:80
vm0 = 0,127.0.0.1:80,127.0.0.2:80,127.0.0.3:80
#copys to put in filesystem, should be fixed in 3fs live time
#redundancy = 1, only one copy of file, no redundancy
#redundancy = 2, one more copy at other location
#redundancy = 3, two more copy at different location, should be safe enough
redundancy = 2
#how many servers in your one stage? 4096 means you can add/expand max 4096 servers at a time
#it can infect the calculating algorithm, should be fixed in 3fs live time, be careful to chose it
region = 256
#in url containing this prefix, will be considered as 3fsd files, fixed
#url for example: http://3xsd.net/_3fs_0/path/to/file, 0 for stage number
prefix = _3fs
#a set of server running for sometime, called a stage
#when you expand you servers, stage plus one, plusing stage procedure should not rollback
stage = 0
#peers permitted to perform PUT/DELETE action
write_permit = 127.0.0.1,10.23.4.10-20
[3nsd]
#The first is main config, the second is backup config, the third is backup of the second...
#When ip in the first all go down, fallback to the second, and third, and more...
#domainname = ttl,ip,ip...
a.i.3xsd.net = 100,10.23.4.123,10.23.4.124-129
_a.i.3xsd.net = 100,10.23.4.11,10.23.4.17
__a.i.3xsd.net = 100,10.23.4.5
#for left-right dns range resolving, refering to 3dns-left-right-dns-range-resolving.txt
#the left-right dns server location might be: asia&america or us-east&us-west
#left side dns server name: left, right side dns server name: right
#range: what side I am at, range_suffix: domainname suffix to do range resolving
#ga.i.3xsd.net the main domainname to resolve
#ga.l.3xsd.net the server ip belong to left side
#ga.r.3xsd.net the server ip belong to right side
#left = l.3xsd.net
#right = r.3xsd.net
#range = left
#range_suffix = i.3xsd.net
#ga.i.3xsd.net = 100,0.0.0.0
#ga.l.3xsd.net = 100,127.0.0.1
#ga.r.3xsd.net = 100,127.0.0.2
#geoip_db = GeoLite2-Country.mmdb
#b.i.3xsd.net = 100,10.23.4.10
#b.i.3xsd.net@AS/CN = 100,10.23.4.123
#b.i.3xsd.net@US/JP = 100,10.23.4.124
[3zsd]
#simular to 3nsd, port num added
#domain name '*' means pass the other request not in list to default backends(forward feature)
#and a special backend of '*' is '0.0.0.0:0', which means resolve dns ip of request hostname, then direct to it(transparent feature)
example.com = 100,127.0.0.1:80,127.0.0.2:80,127.0.0.10-20:8000
3xsd.net = 100,127.0.0.1:80,127.0.0.2:80
vm0 = 100,127.0.0.1:80,127.0.0.2:80,127.0.0.3:80
* = 100,127.0.0.1:8080
[3wsd]
#mime type to overwrite default
mime_types = md:text/plain,conf:text/plain
#document root
root =
#index file list
index = index.html,index.htm
#who are permited to PUT/DELETE
writers = 127.0.0.1,10.23.4.10-20
#xcache ttl in seconds
xcache_ttl = 10
#enable on-the-fly gzip transfering
gzip = on
gzip_size = 1k
gzip_max_size = 100m
#default gzip_types = html,htm,js,css,txt,xml, the fllowing "-xml" means minus file type .xml
gzip_types = html,-xml
#enable server pipelining, experimental
server_pipelining = off
#gen Cache-Control and Expires headers for certain mime types
#expire_types = html:5m,png:5m
[3wdd]
#mode: client, server, hybird(both)
mode = server
#global encrypt option, can be: on(aes-128-ecb), off, aes-128-ecb, aes-128-cbc, aes-128-cfb, aes-128-ctr,
# blowfish-cbc, blowfish-cfb, blowfish-ctr
#can be overwrited by session config following
encrypt = off
#client mode connection to server
#dial = warp1,warp2
#io mode: block, default(block), non_block
#block mode use 2 threads per tunnel with blocking io, bi-direction forwarding packages
#non_block mode use 1 thread for tunnels per process with non-blocking io, epoll to handle udt&tun events
#non_block mode take higher cpu consumtion than block mode, but will performance better in multi-tunnels env
#on the other hand, block mode runs better in single-tunnel env
#io_mode = default
#routing table of udt packages, from:to,from:to...
#it's required that from&to tunnel have the same encrypt&compress method, cause it just forwards the packages
#relay = warp2:warp1,warp0:warp1
#turn on routing_metric to send data through multi path(dev/tunnel) choosing the best one depending on tunnel RTT
#routing_metric = on
#an udt tunnel session called: warp1
#local ip: 10.19.27.1 peer ip: 10.19.27.2 mtu: 1380 txqueue: 1000 connect token(password): ddw3~)
#after the connect token is encrypt method and compress method: aes-128-cbc (blank means off)
#or off,lzo to turn off encrypt and turn on lzo compress
#and the last: dst route
warp1 = 10.19.27.1:10.19.27.20:1380:1000:ddw3~):
warp2 = 10.19.37.1:10.19.37.2:1380:1000:ddw3~):aes-128-cbc
#warp3 = 10.19.47.1:10.19.47.2:1380:1000:ddw3~):aes-128-cbc,compress
#warp3 = 10.19.47.1:10.19.47.2:1380:1000:ddw3~):off,lzo:10.19.0.0/19
#this is a client config with extra:
#target ip, port, dest route, port default to 9000, may be blank
#a negative port number cause server not to redirect the tunnel to another worker process with different port number
#warp1 = 10.19.27.2:10.19.27.1:1380:1000:ddw3~):aes-128-cbc:1.2.3.4:9000:10.19.0.0/19,192.30.252.0/22
#warp1 = 10.19.27.2:10.19.27.1:1380:1000:ddw3~):aes-128-cbc,lzo:hostname::10.19.0.0/19,192.30.252.0/22
#warp1 = 10.19.27.2:10.19.27.1:1380:1000:ddw3~):aes-128-cbc,lzo:hostname::10.19.0.0/19,192.30.252.0/22,ifup=/path/to/up.sh,ifdown=/path/to/down.sh,rtch=/path/to/rtch.sh