ืืื ืืืืื!
ืฉืื ื ืืงืืื, ืื ื ืจืืฉ ืืฆืืืช ืฉื ืฆืืืช ืืื ืืกื ืฉื ืกืืื. ืืืช ืืืืืจืืืช ืฉืื ืืืืจื ืืื ืืฆืืฆื ืืช ืืกืคืจ ืืชืงืจืืืช ืืงืฉืืจืืช ืืชืฉืชืืืช ืืืืฆืืจ ืืืคืก.
ืื ืฉื ืืื ืืืื ืืืื ืื ื ืืื ืจื, ืืืืจืช ืืืืจ ืื ืืื ืืื ืืข ืืื ืฉืื ืืืจืื ืืืืืจ ืขื ืืืขืืืืช ืฉืื ื ืื ืืคืืืช ืืืืขืจ ืืช ืืฉืคืขืชื.
ืืืื
ืืคื ื ืืื ืจื, ืืืฉืจ Cian ืืืื ืืื ืืืืืื, ืืขืืืื ืื ืืื ืจืืืื ืืฉืืจืืชื ืืืงืจื, ืืืื ื ืืช ืืืืื ืืช ืฉื ืืฉืื ืขื ืืื ืืืืงืช 3-5 ืขืืืืื.
ืื ืขืื ืื - ืืื ืืกืืจ, ืื ืื ืื ืขืื ืื ืืจืื ืืื - ืขืจื ืืื. ืืื ืืื ืื ืืื ืฆืจืืืื ืืืืืช ืืืืฅ ืืขืืืื ืืื ืฉืื ืืืืฉื ืืืืจืืข, ืืืืืื ืื ืฉืื ืืคืืืฉืืช. ืฆืืืช ืืื ืืกืื ืืื ืชืืื ืืขืืจื ืืืงืืจืช ืืืืจืืข. ืืฉืืืงืืจื ืืกืชืืืื ืืชืื ื ืชืืื ืฉืืืืจ ืืืืืช - ืืขืื ืื"ื ืืืืื ืืคืืจืื: ืื ืงืจื, ืืื ืืื ืื ื ืืฉื, ืื ืขืฉืื ื ืืืืชื ืจืืข, ืื ื ืขืฉื ืืขืชืื.
ืืขืืืืื ืืจืืฉืืื ืฉื ืืืชืจ ืื ืืื ืื ืื ื ืืืื ืื ืฉืืืขื ื ืืชืืชืืช
ืขื ืื ืช ืืืืื ืืืืฉืื ืืช ืืขืืืคืืช ืฉื ืืฉืืืื, ืืืืื ื ืืช ืืคื ืืืชืจ ืืงืจืืืืื ืืืืชืจ ืืคืื ืงืฆืืื ืืืืช ืืขืกืงืืช. ืืืืฆืขืืชื, ืื ื ืกืืคืจืื ืืช ืืกืคืจ ืืืงืฉืืช ืืืืฆืืืืช/ืื ืืืฆืืืืช ืืคืกืงื ืืืื ืืงืฆืืืื. ืื ืื ื ืืืืืื ืืื ืคืขืืื.
ื ื ืื ืฉืืืืื ื ืฉืืฉ ืืกืคืจ ืงืืขืื ืกืืคืจ ืืฉืืืื ืืืชืจ ืฉืืืจืืื ืขื ืืฉืืจืืช ืืืจืืื โ ืืืคืืฉ ืืฉืืืืช ืคืจืกืืืืช. ืื ืืกืคืจ ืืืงืฉืืช ืฉื ืืฉืื ืขืืื ืขื 1%, ืืืืืจ ืืืืจืืข ืงืจืืื. ืื ืชืื 15 ืืงืืช ืืืืื ืืคืจืืื ืืืื ืฉืืขืืจ ืืฉืืืืืช ืขืืื ืขื 0,1%, ืื ืื ืื ื ืืฉื ืืืืจืืข ืงืจืืื. ืงืจืืืจืืื ืื ืืื ืืืกืื ืืช ืจืื ืืชืงืจืืืช; ืืฉืืจ ืื ืืืืฅ ืืชืืื ืืืืืจ ืืื.
ืืชืงืจืืืช ืืืืืืช ืืืืชืจ Cyan
ืื, ืืืืื ืืืื ื ืืงืืืข ืืช ืืขืืืื ืฉืงืจื ืชืงืจืืช.
ืืขืช ืื ืืืจืืข ืืชืืืจ ืืคืืจืื ืืืฉืชืงืฃ ืืืคืืก ื'ืืจื. ืืื: ืืฉืืื ืื ืืชืืื ื ืคืจืืืงื ื ืคืจื, ืฉื ืงืจื FAIL - ืืคืฉืจ ืืืฆืืจ ืื ืจืง ืืคืืกืื.
ืื ืืชื ืืืกืฃ ืืช ืื ืืืฉืืื ืืืืื ืืฉื ืื ืืืืจืื ืืช, ืืื ืืืืื ืื:
- ืชืงืจืืืช ืืงืฉืืจืืช ื-mssql;
- ืชืงืจืืืช ืฉื ืืจืื ืขื ืืื ืืืจืืื ืืืฆืื ืืื;
- ืฉืืืืืช ืืืืื.
ืืืื ื ืกืชืื ืืืชืจ ืคืืจืื ืขื ืืืขืืืืช ืฉื ืื ืืืื, ืืื ืื ืืื ืืฉืืื ืืขื ืืื ืื ืืืจืื.
ืืงืื ืืืืฉื - "ืืขืฉืืช ืกืืจ ื-DNS"
ืื ืืื ืืื ืฉืืืฉื ืกืืขืจ. ืืืืื ื ืืืืืืจ ืืช ืืกืืจ ืขื ืื ื ืืืฉืืื ื-DNS.
ืจืฆืืชื ืืืขืืืจ ืฉืจืชื DNS ืคื ืืืืื ื-bind ื-powerdns, ืืืงืฆืืช ืืื ืฉืจืชืื ื ืคืจืืื ืืืืืืื, ืฉืืื ืืื ืฉืื ืืืจ ืืืื DNS.
ืืฆืื ื ืฉืจืช DNS ืืื ืืื ืืืงืื ืฉื ื-DCs ืฉืื ื, ืืืืืข ืืจืืข ืืืขืืืจ ืืืืจืื ื-bind ื-powerdns ืืืืขืืืจ ืืช ืืชืฉืชืืช ืืฉืจืชืื ืืืฉืื.
ืืขืืฆืืื ืฉื ืืืืื, ืืืื ืื ืืฉืจืชืื ืฉืฆืืื ื ื-caching local binds ืืื ืืฉืจืชืื, ื ืืชืจ ืจืง ืืื, ืฉืืื ืืืจืื ืื ืชืื ืื ืืกื ื ืคืืจืกืืืจื. ื-DC ืืื ืืืืจื ืืชืืืื ืืื ืงืจืืื ืขืืืจื ื, ืืื ืคืชืืื ืืคื ืื ืงืืืช ืืืฉืืื ืืืช.
ืืชืงืืคื ืื ืฉื ืจืืืืงืืืฉื ื ืคืื ืืชืขืื ืืื ืืืกืงืื ืืกื ื ืคืืจืืืจื. ืืืขืฉื ื ืฉืืจื ื ืืื DNS ืืืฉื ืืืฉ ืืงืืช ืืงืื ื ืืืจื ืืฉืืืืจื ืชืืงื ืืช ืืืขืื.
ืืกืงื ืืช:
ืื ืงืืื ืืื ืืื ืื ื ืืืจืืื ืืืฆืื ืืื ืืืืื ืืืื ื ืืขืืืื, ืืขืช ืื ื ืืืืื ืื ืืจืฉืืื ืฉื ืื ืฉืื ื ืืชืืื ื ืื ืืืื. ืืขืืฉืื ืื ืื ื ืฉืืืคืื ืืืืืื ืฉืื ืืจืืืืื ืืืื ืฉืืืจืื n-2, ืืืืืื ืืขืืืื ื ืืื ืืืืจืื ืืช ืืจืื ืืื ื-n-1.
- ืืขืช ืขืจืืืช ืชืืื ืืช ืคืขืืื, ืกืื ืืช ืื ืงืืืืช ืฉืืื ืืฉืืจืืช ืขืืื ืืืืืฉื, ืืืฉืื ืืจืืฉ ืขื ืชืจืืืฉ ืฉืื ืืื ืืื "ืืจืข ืืจืข".
- ืืคืฆืช ืฉืจืชื DNS ืคื ืืืืื ืขื ืคื ื ืืืงืืืื ืืืืืืจืคืืื / ืืจืืื ื ืชืื ืื / ืืชืืื / ืืชืืื / ืื ืืกืืช ืฉืื ืื.
- ืืื ืฉืจืช, ืืชืงื ืฉืจืช DNS ืืืืกืื ืืืืืื ืืงืืื, ืืืคื ื ืืงืฉืืช ืืฉืจืชื ื-DNS ืืจืืฉืืื, ืืื ืืื ืื ืืืื, ืืื ืืืื ืืืืืืื.
ืืงืื ืจืืืขื - "ืืขืฉืืช ืกืืจ ื-Nginx"
ืืื ืืืืจ ืืื, ืืฆืืืช ืฉืื ื ืืืืื ืฉ"ืื ืืื ืื ื ืืื", ืืืชืืืื ืฉื ืขืืืื ืชืฆืืจืืช nginx ืืื ืืืืฉ. ืืืืจื ืืขืืงืจืืช ืืื ืืืืื ืืช ืืืืืจืืช ืืืื ื ืืื ืืืืืืืื. ืืขืืจ ืืื ืืื "ืืืืกืก ืืืกืืืจืืช" ืืื ื ืฉื ืฉืื ืืืืืื. ืืขืช ืื server_name ืืืขืืจ ืืงืืืฅ ืืืืชื ืฉื ืืื ืืืืืจืืช ืืืคืฆื ืืชืืงืืืช. ืืื, ืืชืฆืืจื ืืืืื 253949 ืฉืืจืืช ืื 7836520 ืชืืืื ืืชืืคืกืช ืืืขื 7 ืืื ืืืื. ืจืื ืขืืืื ื ืฉื ืืื ื:
ืืื ื Nginx
โโโ access
โ โโโ allow.list
...
โ โโโ whitelist.conf
โโโ geobase
โ โโโ exclude.conf
...
โ โโโ geo_ip_to_region_id.conf
โโโ geodb
โ โโโ GeoIP.dat
โ โโโ GeoIP2-Country.mmdb
โ โโโ GeoLiteCity.dat
โโโ inc
โ โโโ error.inc
...
โ โโโ proxy.inc
โโโ lists.d
โ โโโ bot.conf
...
โ โโโ dynamic
โ โโโ geo.conf
โโโ lua
โ โโโ cookie.lua
โ โโโ log
โ โ โโโ log.lua
โ โโโ logics
โ โ โโโ include.lua
โ โ โโโ ...
โ โ โโโ utils.lua
โ โโโ prom
โ โโโ stats.lua
โ โโโ stats_prometheus.lua
โโโ map.d
โ โโโ access.conf
โ โโโ ..
โ โโโ zones.conf
โโโ nginx.conf
โโโ robots.txt
โโโ server.d
โ โโโ cian.ru
โ โ โโโ cian.ru.conf
โ โ โโโ ...
โ โ โโโ my.cian.ru.conf
โโโ service.d
โ โโโ ...
โ โโโ status.conf
โโโ upstream.d
โโโ cian-mcs.conf
โโโ ...
โโโ wafserver.conf
ืื ื ืขืฉื ืืจืื ืืืชืจ ืืื, ืืื ืืชืืืื ืฉื ืฉืื ืื ืฉืืืช ืืืคืฆืช ืืืืจืืช, ืืืืง ืืื ืืืืชื ืืจืืื ืฉืืืื ืืื ื ืืืื ืืื ืืืืช include *.conf. ืืชืืฆืื ืืื, ืืืง ืืืืืจืืื ืืคืื ืืื ืืืื ืื ืืืืืืจื 301 ืืขืืื ืืจืืฉื. ืืฉื ืืขืืืื ืฉืงืื ืืชืืืื ืื ืืื 5xx/4xx, ืื ืืืืื ื ืืื ืืื, ืืื ืจืง ืืืืงืจ. ืืืืจ ืืื, ืืชืืื ื ืืืชืื ืืืื ืื ืืืืืงืช ืจืืืื ืชืฉืชืืช.
ืืกืงื ืืช:
- ืืื ื ืืช ืืืืืจืืช ืฉืื ืืฆืืจื ื ืืื ื (ืื ืจืง nginx) ืืืฉืื ืขื ืืืื ื ืืฉืื ืืืงืื ืฉื ืืคืจืืืงื. ืื ืชืืคืื ืืืชื ืืืืื ืื ืืืชืจ ืืฆืืืช, ืื ืฉืืชืืจื ืืงืืื ืืช ื-TTM.
- ืืชืื ืืืื ืื ืขืืืจ ืืืง ืืืจืืืื ืืชืฉืชืืช. ืืืืืื: ืืืืงื ืฉืื ืฉืืืช ืืฉืจืชืื ืืืคืชืืื ื ืืชื ืื ืืช ืืกืืืืก ืื ืืื + ืืืฃ ืืชืืืื. ืื ืืืื ืืกืคืืง ืจืง ืืื ืกืงืจืืคืืื ืืืืฉื ืื ืฉืืืืงืื ืืช ืืคืื ืงืฆืืืช ืืืกืืกืืืช ืฉื ืืจืืื, ืืื ืื ืืืืืจ ืืืืจืืฃ ื-3 ืืคื ืืช ืืืงืจ ืื ืขืื ืฆืจืื ืืืืืง.
ืืงืื ืฉืืืฉื - "ืคืชืืื ื ืืืจ ืืืงืื ืืงืกื ืืจื"
ืื ืชืื ืื ืืืื ืืืชืืื, ืืืื ืืื ืืกืืจ ืขื ืืจืืข ืฉืื ืืชืืงืื ืฉื ืืืื ืืืจืืื ืืืืืื ืืื ืืืืืฉื ืืืฉืืื ืงืกื ืืจื, ืื ืืืืืกื ืื ืืืื ืืขืืื ืขืืืื.
ืืื ืกืืขืจ ืืื, ืืืฉืืื ืืืขื ืืคื ืืืืขืช, ืืืืืจ:
- ื ืืชืจื ื-20% ืืืื ืืืื ืืืฉืืื;
- ืื ืืคืฉืจ ืืืืกืืฃ ืฆืืชืื ืืืืคื ืืื, ืืืืืื ืฉืื ืืงืื ืื ืขืืืจ ืืืืจ ืืืกืคืช ืฆืืืช ืืืื ืืืกืจ ืืงืื ืืืืืฆืืช;
- ืืคืจืืืืงืืืืืืช ืืืจืืช ืืืืจืื ืืืืืื ืฉืืืืืกื ืืื ื ืคืืขืืช;
- ืืืฉืืื ื ืืฆื ืืืฆื ืืืจืื.
ืืฆืืื - ืืืกืคื ื ืขืื 5 ืฆืืชืื ืืื ื ืืงืื ืืืืืจ ืืื ืืชืืื ื ืืืกืืจ ืืืชื ืืืืคื ืฉืืืชื ืืืืฉืืื ืืืืืื ืก ืืืืื ืืืืฉ, ืืื ืฆืืชืื ืจืืงืื ืฉื ืืืจ ืืื ืืืงืื. ืืืฉืงืข ืืจืื ืืืชืจ ืืื ืืื ืฉืืืื ื ืจืืฆืื. ืืื ืกืืืื ืืื ืืืื ืืช ืืืงืืช ืื ืืืื ืฉื ืืืฉืืื.
ืืกืงื ืืช:
- ืืื ืฉืจืชื ืงืกื ืืจื, ืื ืฆืจืื ืืชืคืืก ืืืชืจ ื-60% ืืืฉืื ืืื ืืืืฆื.
- ืื ืฆืจืืืื ืืืืืขื ื-50% ืืขืื ืื ืืืชืจ.
- ืื ืชืฉืื ืืช ืชืื ืื ืืงืืืืืช ืืฆืจืื ืืืฉืื ืขื ืื ืขืืืจ ืื ืจืืื, ืืืชืืกืก ืขื ืืกืคืฆืืคืืืช ืฉืื.
- ืืื ืฉืืืชืจ ืฆืืชืื ืืืฉืืื, ืื ืืืื. ืฉืจืชืื ืืืืืืื ืืืืช ืงืื ื ืฉื ื ืชืื ืื ืขืืืกืื ืืืจ ืืืชืจ, ืืงื ืืืชืจ ืืืืืืช ืืฉืืื ืืื.
ืืงืื ืฉื ื - "ืื ืชืื ืื ื ืขืืื ืืืืกืื ืขืจื ืืคืชื-ืขืจื ืฉื ืงืื ืกืื"
ืืืืืื ืฉืืจืืช, ืื ื, ืืื ืจืืื, ืืฉืชืืฉืื ืืงืื ืกืื. ืืื ืื ื ืืฉืชืืฉืื ืื ืืขืจื ืืืคืชื ืฉืื ืืคืจืืกื ืืืืื-ืืจืืง ืฉื ืืืื ืืืื. ืืื ืืืืกื ืืืืข ืขื ืืจืืื ืคืขืืืื ืืื ืคืขืืืื, ืืฉืจ ืืฉื ืื ืืงืื ืืืืื ืืคืจืืกื. ืืฆืืจื ืื ื ืืชื ืฉืืจืืช ืคืจืืกื ืฉืงืืื ืืื ืืจืืงืฆืื ืขื KV. ืืฉืื ืืกืืื, ืื ืชืื ืื ื-KV ื ืขืืื. ืฉืืืืจ ืืืืืืจืื, ืื ืขื ืืกืคืจ ืฉืืืืืช. ืืชืืฆืื ืืื, ืืืืื ืืืขืืื, ืืขืืืก ืขื ืืืจืืื ืืชืืืง ืืฆืืจื ืื ืืืืื, ืืงืืืื ื ืืจืื ืฉืืืืืช 502 ืขืงื ืขืืืก ืืชืจ ืขื ื-CPU. ืืชืืฆืื ืืื, ืขืืจื ื ืืืงืื ืกืื KV ื-postgres, ืืฉื ืืืจ ืื ืื ืื ืงื ืืืกืืจ ืืืชื.
ืืกืงื ืืช:
- ืฉืืจืืชืื ืืื ืื ืืืฉืืจ ืืื ื ืืืืจืื ืืืืื ื ืชืื ืื ืงืจืืืืื ืืชืคืขืื ืืืชืจ. ืืืืืื, ืื ืืื ืื ืืจืฉืื ื-ES, ืขืืืฃ ืืฉืืื ืืืฉื ืืจืืช ืืจืฉืช ืืื ืืงืื ืื ืืื ืฆืืจื, ืืืฉืืืจ ืจืง ืืช ืื ืืืฆืื, ืืื ืืืืืืจ action.destructive_requires_name: true.
- ืชืจืื ืืช ืื ืื ืื ืืืืืื ืืืฉืืืืจ ืฉืื ืืจืืฉ. ืืืืืื, ืฆืืจ ืกืงืจืืคื ืืจืืฉ (ืืืฉื ื-Python) ืฉืืืื ืืืืืช ืืืฉืืืจ.
ืืงืื ืจืืฉืื - "ืงืคืื ืื ืืจืืจ"
ืืฉืื ืืกืืื, ืฉืื ื ืื ืืืชืคืืืืช ืื ืืืืื ืฉื ืขืืืก ืขื nginx upstream ืืืงืจืื ืฉืืื ืืื 10+ ืฉืจืชืื ื-backend. ืืฉื ืืขืืืื ืฉ-round-robin ืฉืื ืืงืฉืืช ืื-1 ืขื ืืืืจืื ืืืขืื ืืืจื ืืคื ืืกืืจ, ืืื ืืขืื ื ืืืืฉ ืฉื nginx ืืชืืืื ืืืืฉ, ื-upstreams ืืจืืฉืื ืื ืชืืื ืงืืืื ืืืชืจ ืืงืฉืืช ืืืฉืืจ, ืืชืืฆืื ืืื, ืื ืขืืื ืืื ืืืชืจ ืืืืชืจ ืืืื ืกืื. ืื ื ืขืฉื ืืืื ืืืชืจ ืืืืชืจ ืืื ืฉืืืืช ืืชื ืืขื ืืืื. ืคืฉืื ืืขืืื ืืช nginx ืืื ืืืคืฉืจ ืืงืจืื ืื ืขืื - ืื ืื ื ืฆืจืืืื ืืขืฉืืช ืืืืฉ ืืืืจื ืฉื ืงืื lua ืฉืื ืืืจืื ืืืจืกื 1.15 (ืืืืชื ืจืืข). ืืืื ื ืฆืจืืืื ืืชืงื ืืช nginx 1.14.2 ืฉืื ื, ืืืืื ืืก ืืชืืื ืชืืืื ืืงืจืืืช. ืื ืคืชืจ ืืช ืืืขืื. ืืืื ืืื ืืืื ืืงืืืืจืืืช "ืงืคืื ืื-ืืืื ืืืืื".
ืืกืงื ืืช:
ืื ืืื ืืืื ืืขื ืืื ืืืจืืฉ ืืืงืืจ ืืช ืืืื ืืื).
- ืืจืื ืืช ืื ืืืืจ ืฉืื ืื ืฉืืขืืืจ ืื ืืืฆืื ืชื ืืืืช ืืืื ืืืืืจืืช. ืืืืืื, ืืชื ืืืื ืืืฉืชืืฉ ื-ELK ืืื ืื ืืจ rps ืืื ืงืฆื ืืืืจื ืฉื ืื ืืืขืื ืืืจื, ืื ืืจ ืืช ืืื ืืชืืืื ืฉืืื ืื ืงืืืช ืืืื ืฉื nginx. ืืืงืจื ืื, ืื ืขืืจ ืื ื ืืืืืช ืืช ืืืขืื.
ืืชืืฆืื ืืื, ื ืืชื ืืื ืืื ืืข ืืช ืจืื ืืืืฉืืื ืืช ืขื ืืืฉื ืงืคืื ืืช ืืืชืจ ืืื ืฉืืชื ืขืืฉื. ืขืืื ื ืืืืืจ ืชืืื ืืช ืืืง ืืจืคื: ืื ืืืจ ืฉืืืื ืืืฉืชืืฉ ืืฉืชืืฉ, ืืืื ืืช ืจืืืืื ืขื ืกืื ืื.
ืืงืืจ: www.habr.com