рдЕрд╣реЛ рд╣рд╛рдмреНрд░!
рдЕрд▓реАрдХрдбреЗрдЪ рдореА рд╕реНрд╡рддрдГрд▓рд╛ рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рд╕рд╛рдкрдбрд▓реЗ рдЬреНрдпрд╛рдордзреНрдпреЗ рдЗрдВрдЯрд░рдиреЗрдЯрд╡рд░ рдЕрдкреВрд░реНрдг рдкреНрд░рд╡реЗрд╢рд╛рд╕рд╣ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддреЗ рдЖрдгрд┐ рдЬрд╕реЗ рдЖрдкрдг рд╢реАрд░реНрд╖рдХрд╛рд╡рд░реВрди рдЕрдВрджрд╛рдЬ рд▓рд╛рд╡реВ рд╢рдХрддрд╛, рддреНрдпрд╛рдордзреНрдпреЗ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЕрд╡рд░реЛрдзрд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ. рдорд▓рд╛ рдЦрд╛рддреНрд░реА рдЖрд╣реЗ рдХреА рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЕрдиреЗрдХрд╛рдВрдирд╛ рдкрд░рд┐рдЪрд┐рдд рдЖрд╣реЗ.
рдореА рдЗрдиреНрд╕реНрдЯрдВрдЯ рдореЗрд╕реЗрдВрдЬрд░рд╢рд┐рд╡рд╛рдп рдХрд░реВ рд╢рдХрддреЛ, рдкрд░рдВрддреБ рдорд▓рд╛ рдХрд╛рдорд╛рд╕рд╛рдареА рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛. рдХреНрд▓рд╛рдпрдВрдЯрд▓рд╛ рд╡рд░реНрдХ рдорд╢реАрдирд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдирд╡реНрд╣рддреЗ рдХрд┐рдВрд╡рд╛ рд╡реИрдпрдХреНрддрд┐рдХ рд▓реЕрдкрдЯреЙрдк рд╡рд╛рдкрд░рдгреЗ рд╢рдХреНрдп рдирд╡реНрд╣рддреЗ. рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреЗ рд╣рд╛ рджреБрд╕рд░рд╛ рдЙрдкрд╛рдп рджрд┐рд╕рддреЛ
рд╕реБрджреИрд╡рд╛рдиреЗ, рд╡реЗрдмреЛрдЧреНрд░рд╛рдо рд╣рд╛ рдПрдХ рдореБрдХреНрдд рд╕реНрддреНрд░реЛрдд рдкреНрд░рдХрд▓реНрдк рдЖрд╣реЗ рдЬреНрдпрд╛рдЪрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ
рдЗрдиреНрд╕реНрдЯреЙрд▓реЗрд╢рди рдЖрдгрд┐ рд▓реЙрдиреНрдЪ рдХрд░рдгреЗ рд╕реНрд╡рддрдГрдЪ рдЕрд╡рдШрдб рдирд╛рд╣реА, рддрдерд╛рдкрд┐, рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЕрд╡рд░реЛрдзрд┐рдд рдкреНрд░рд╡реЗрд╢ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХрдордзреНрдпреЗ рдСрдкрд░реЗрд╢рдирдЪреНрдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд, рд╡реЗрдм рдЖрд╡реГрддреНрддреА рд╡рд╛рдкрд░рдХрд░реНрддреНрдпрд╛рдЪреНрдпрд╛ рдорд╢реАрдирд╡рд░реВрди рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рд▓реНрдпрд╛рдореБрд│реЗ рдЖрдкрдг рдпрд╢рд╕реНрд╡реА рд╣реЛрдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рдирд┐рд░рд╛рд╢ рд╣реЛрдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЬрд╛рд╕реНрдд рдЕрд╕рддреЗ.
рд╕реБрджреИрд╡рд╛рдиреЗ, рд╣реЗ рдЕрдЧрджреА рд╕реЛрдкреЗ (рдкрд░рдВрддреБ рдлрд╛рд░ рд╕реНрдкрд╖реНрдЯ рдирд╛рд╣реА) рдирд┐рд░рд╛рдХрд░рдг рдЖрд╣реЗ. рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдЪреЗрддрд╛рд╡рдгреА рджреЗрдК рдЗрдЪреНрдЫрд┐рддреЛ рдХреА рдореА рдпрд╛ рд╕рдорд╛рдзрд╛рдирд╛рдЪрд╛ рд▓реЗрдЦрдХ рдирд╛рд╣реА. рдореА рддреЗ рд╢реЛрдзрдгреНрдпрд╛рдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ
рдХрдЯрдЪреНрдпрд╛ рдЦрд╛рд▓реА рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рд╡реЗрдмреЛрдЧреНрд░рд╛рдо рдорд┐рд░рд░рдЪрд╛ рд╕реНрдЯреЗрдк рдмрд╛рдп рд╕реНрдЯреЗрдк рд╕реЗрдЯрдЕрдк рдЖрдгрд┐ nginx рд╡рд╛рдкрд░реВрди рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдгреНрдпрд╛рдЪрд╛ рд╕реЗрдЯрдЕрдк рдорд┐рд│реЗрд▓.
рдЙрджрд╛рд╣рд░рдг рдореНрд╣рдгреВрди, рдореА рдирд╡реАрди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗрд▓рд╛ рдЖрдгрд┐ рдЕрдкрдбреЗрдЯ рдХреЗрд▓реЗрд▓рд╛ рдЙрдмрдВрдЯреВ рд╕рд░реНрд╡реНрд╣рд░ 18.04.3 рдирд┐рд╡рдбрд▓рд╛.
рдЪреЗрддрд╛рд╡рдгреА: рдпрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдордзреНрдпреЗ nginx рдордзреНрдпреЗ рдбреЛрдореЗрди рд╕реЗрдЯ рдЕрдк рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕реВрдЪрдирд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдирд╛рд╣реАрдд. рдЖрдкрдг рд╣реЗ рд╕реНрд╡рддрдГ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рддреЗ рдХреА рддреБрдореНрд╣реА ssl рд╕рд╣ рдбреЛрдореЗрди рдЖрдзреАрдЪ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЬреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рддреБрдореНрд╣реА рддреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣рд╛рдд рддреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдЖрд╣реЗ (рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд╡рдбрд▓реЗрд▓реНрдпрд╛ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкреНрд░рдХрд╛рд░реЗ)
╨Я╤А╨╡╨┤╨┐╨╛╨╗╨╛╨╢╨╕╨╝, ╤З╤В╨╛ ip ╨┤╨░╨╜╨╜╨╛╨│╨╛ ╤Б╨╡╤А╨▓╨╡╤А╨░ 10.23.0.3, ╨░ ╨┤╨╛╨╝╨╡╨╜╨╜╨╛╨╡ ╨╕╨╝╤П mywebogram.localhost
рдпрд╛ рдЕрдзрд┐рд╡реЗрд╢рдирд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рдореА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдЪреА рдЙрджрд╛рд╣рд░рдгреЗ рджреЗрдИрди. рд╕реНрд╡рддрдГрдЪреА рдореВрд▓реНрдпреЗ рдмрджрд▓рдгреНрдпрд╛рд╕ рд╡рд┐рд╕рд░реВ рдирдХрд╛.
рдЪрд▓рд╛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реВрдпрд╛:
рд╡реЗрдмрдЧреНрд░рд╛рдо рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣рд╛рд▓рд╛ рдиреЛрдбрдЬрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдЬрд░ рдЖрдореНрд╣реА рддреЗ рдЙрдмрдВрдЯреВ рд░рд┐рдкреЙрдЭрд┐рдЯрд░реАрдЬрдордзреВрди рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рддрд░ рдЖрдореНрд╣рд╛рд▓рд╛ nodejs рдЖрд╡реГрддреНрддреА 8.x рдорд┐рд│реЗрд▓. рдЖрдореНрд╣рд╛рд▓рд╛ 12.x рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt update && sudo apt -y install nodejs
рдЖрдордЪрд╛ рд╡реЗрдмрдЧреНрд░рд╛рдо рдЖрдзрд╛рд░рд┐рдд рдЕрд╕реЗрд▓ рддреЗ рдард┐рдХрд╛рдг рдЖрдореНрд╣реА рдирд┐рд╡рдбрддреЛ.
рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╣реЛрдо рдбрд┐рд░реЗрдХреНрдЯрд░реАрдЪреНрдпрд╛ рд░реВрдЯрдордзреНрдпреЗ рдареЗрд╡реВрдпрд╛. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЕрдзрд┐рдХреГрдд рднрд╛рдВрдбрд╛рд░ рдХреНрд▓реЛрди рдХрд░рд╛:
cd ~ && git clone https://github.com/zhukov/webogram.git
рдкреБрдвреАрд▓ рдкрд╛рдпрд░реА рдореНрд╣рдгрдЬреЗ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ:
cd webogram && npm install
рдЪрд▓рд╛ рдПрдХ рдЪрд╛рдЪрдгреА рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛. рдХрдорд╛рдВрдб рдЪрд╛рд▓рд╡рд╛:
npm start
рддреНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА рддреЗ рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЙрдШрдбрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ
http://10.23.0.3:8000/app/index.html
рдпрд╛ рдХреНрд╖рдгрд╛рдкрд░реНрдпрдВрдд рддреБрдореНрд╣реА рд╕рд░реНрд╡рдХрд╛рд╣реА рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рд╡реЗрдмрдЧреНрд░рд╛рдо рдЕрдзрд┐рдХреГрддрддрд╛ рдкреГрд╖реНрда рдЙрдШрдбреЗрд▓.
рдЖрддрд╛ рдЖрдореНрд╣рд╛рд▓рд╛ рд╕реЗрд╡рд╛ рдореНрд╣рдгреВрди рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХ рдлрд╛рдИрд▓ рддрдпрд╛рд░ рдХрд░реВрдпрд╛
sudo touch /lib/systemd/system/webogram.service
рддреЗ рдХреЛрдгрддреНрдпрд╛рд╣реА рдПрдбрд┐рдЯрд░рдордзреНрдпреЗ рдЙрдШрдбрд╛ рдЖрдгрд┐ рддреНрдпрд╛рд▓рд╛ рдЦрд╛рд▓реАрд▓ рд╕реНрд╡рд░реВрдк рджреНрдпрд╛ (рд╡рд░реНрдХрдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рддреБрдордЪрд╛ рдорд╛рд░реНрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░рд╛)
[Unit]
Description=Webogram mirror
[Service]
WorkingDirectory=/home/tg/webogram
ExecStart=/usr/bin/npm start
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
рдордЧ рдЖрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдЖрдЬреНрдЮрд╛ рдЪрд╛рд▓рд╡рддреЛ:
рдмрджрд▓ рд▓рд╛рдЧреВ рдХрд░рдгреЗ
sudo systemctl daemon-reload
рдСрдЯреЛрд░рди рд╕рдХреНрд╖рдо рдХрд░рд╛:
sudo systemctl enable webogram.service
рдЪрд▓рд╛ рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХрд░реВрдпрд╛:
sudo systemctl start webogram.service
рдкрд╛рдпрд▒реНрдпрд╛ рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рд╡реЗрдмрдЧреНрд░рд╛рдо рдкреЛрд░реНрдЯ 8000 рд╡рд░ рдЙрдкрд▓рдмреНрдз рд░рд╛рд╣реАрд▓.
рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╡реЗрдмреЛрдЧреНрд░рд╛рдорд╡рд░ nginx рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╡реЗрд╢ рд╕реЗрдЯ рдХрд░рдгрд╛рд░ рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рдмрд╛рд╣реЗрд░реВрди рдЖрд▓реЗрд▓реНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛рдВрд╕рд╛рдареА рдкреЛрд░реНрдЯ 8000 рдмрдВрдж рдХрд░реВ.
рдЖрдореНрд╣реА рдпрд╛рд╕рд╛рдареА udf рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░рддреЛ (рдХрд┐рдВрд╡рд╛ рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рд╕реЛрдпреАрдЪреА рдХреЛрдгрддреАрд╣реА рдкрджреНрдзрдд):
sudo ufw deny 8000
рдЬрд░ рддреБрдореНрд╣реА рдЕрдЬреВрдирд╣реА udf рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреЗ рдард░рд╡рд▓реЗ рдЕрд╕реЗрд▓, рдкрд░рдВрддреБ рддреЗ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЕрдХреНрд╖рдо рдХреЗрд▓реЗ рдЕрд╕реЗрд▓, рддрд░ рдЖрдгрдЦреА рдирд┐рдпрдо рдЬреЛрдбрд╛ (рдЬреЗрдгреЗрдХрд░реВрди рд╕рд░реНрд╡ рдХрд╛рд╣реА рд╡реЗрдЧрд│реЗ рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА) рдЖрдгрд┐ udf рд╕рдХреНрд╖рдо рдХрд░рд╛:
sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
рдкреБрдвреЗ, nginx рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓рдгреЗ рд╕реБрд░реВ рдХрд░реВрдпрд╛.
рдореА рд╡рд░ рдЪреЗрддрд╛рд╡рдгреА рджрд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рд▓реЗ рдЬрд╛рддреЗ рдХреА ssl рд╕рд╣ рдбреЛрдореЗрди рддреБрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЖрдзреАрдЪ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ. рдбреЛрдореЗрди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓ рдпреЛрдЧреНрдпрд░рд┐рддреАрдиреЗ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдд рдХрд╛рдп рдЬреЛрдбрд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ рдпрд╛рдХрдбреЗ рдореА рддреБрдордЪреЗ рд▓рдХреНрд╖ рд╡реЗрдзреВрди рдШреЗрдИрди:
server {
...
location ^~ /pluto/apiw1/ {
proxy_pass https://pluto.web.telegram.org/apiw1/;
}
location ^~ /venus/apiw1/ {
proxy_pass https://venus.web.telegram.org/apiw1/;
}
location ^~ /aurora/apiw1/ {
proxy_pass https://aurora.web.telegram.org/apiw1/;
}
location ^~ /vesta/apiw1/ {
proxy_pass https://vesta.web.telegram.org/apiw1/;
}
location ^~ /flora/apiw1/ {
proxy_pass https://flora.web.telegram.org/apiw1/;
}
location ^~ /pluto-1/apiw1/ {
proxy_pass https://pluto-1.web.telegram.org/apiw1/;
}
location ^~ /venus-1/apiw1/ {
proxy_pass https://venus-1.web.telegram.org/apiw1/;
}
location ^~ /aurora-1/apiw1/ {
proxy_pass https://aurora-1.web.telegram.org/apiw1/;
}
location ^~ /vesta-1/apiw1/ {
proxy_pass https://vesta-1.web.telegram.org/apiw1/;
}
location ^~ /flora-1/apiw1/ {
proxy_pass https://flora-1.web.telegram.org/apiw1/;
}
location ^~ /DC1/ {
proxy_pass http://149.154.175.10:80/;
}
location ^~ /DC2/ {
proxy_pass http://149.154.167.40:80/;
}
location ^~ /DC3/ {
proxy_pass http://149.154.175.117:80/;
}
location ^~ /DC4/ {
proxy_pass http://149.154.175.50:80/;
}
location ^~ /DC5/ {
proxy_pass http://149.154.167.51:80/;
}
location ^~ /DC6/ {
proxy_pass http://149.154.175.100:80/;
}
location ^~ /DC7/ {
proxy_pass http://149.154.167.91:80/;
}
location ^~ /DC8/ {
proxy_pass http://149.154.171.5:80/;
}
location / {
auth_basic "tg";
auth_basic_user_file /etc/nginx/passwd.htpasswd;
proxy_pass http://localhost:8000/;
proxy_read_timeout 90s;
proxy_connect_timeout 90s;
proxy_send_timeout 90s;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
рдЖрдореНрд╣реА nginx рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдХрд╛рдп рдЬреЛрдбрддреЛ:
- ╨Ш╨╖╨╝╨╡╨╜╤П╨╡╨╝ ╨║╨╛╤А╨╜╨╡╨▓╨╛╨╣ location, ╨║╨╛╤В╨╛╤А╤Л╨╣ ╨▒╤Г╨┤╨╡╤В ╨┐╤А╨╛╨║╤Б╨╕╤А╨╛╨▓╨░╤В╤М ╨╖╨░╨┐╤А╨╛╤Б╤Л ╨╜╨░ ╨┐╨╛╤А╤В 8000, ╨┐╨╛ ╨║╨╛╤В╨╛╤А╨╛╨╝╤Г ╨╛╤В╨▓╨╡╤З╨░╨╡╤В Webogram
- рдмреЗрд╕рд┐рдХ-рдСрде рд╡рд╛рдкрд░реВрди рдЖрдореНрд╣реА рд░реВрдЯ рд╕реНрдерд╛рди рдмрдВрдж рдХрд░рддреЛ. рдбреЛрд│реЗ рдЖрдгрд┐ рдмреЙрдЯреНрд╕рдкрд╛рд╕реВрди рдЖрдордЪрд╛ рдЕрд░реНрдЬ рдмрдВрдж рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╣реЗ рдкреВрд░реНрдгрдкрдгреЗ рдкреНрд░рддреАрдХрд╛рддреНрдордХ рдкрд╛рдКрд▓ рдЖрд╣реЗ. (рдЖрдгрд┐ рдЕрд╡рд░реЛрдзрд┐рдд рдХрд░рдгреНрдпрд╛рдд рд╕рдорд╕реНрдпрд╛ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА рджреЗрдЦреАрд▓)
- рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ proxy_path рдЕрд╕рд▓реЗрд▓реА рдЕрдиреЗрдХ рдард┐рдХрд╛рдгреЗ рд╣реЗ рдЖрдордЪреЗ рд╢реЗрд╡рдЯрдЪреЗ рдЯреЛрдХ рдЖрд╣реЗрдд рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░реЙрдХреНрд╕реА рдХрд░реВ.
рддрд╕реЗрдЪ, рдПрдХ рдлрд╛рдИрд▓ рдмрдирд╡реВ /etc/nginx/passwd.htpasswd;
рдЬреЗрдгреЗрдХрд░реВрди nginx рдХрдбреЗ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕рдВрдХреЗрддрд╢рдмреНрдж рддрдкрд╛рд╕рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реАрддрд░реА рдЕрд╕реЗрд▓.
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/passwd.htpasswd tg
nginx рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рд╛:
sudo systemctl restart nginx
╨в╨╡╨┐╨╡╤А╤М Webogram ╨▒╤Г╨┤╨╡╤В ╨┤╨╛╤Б╤В╤Г╨┐╨╡╨╜ ╤В╨╛╨╗╤М╨║╨╛ ╨┐╨╛ ╨░╨┤╤А╨╡╤Б╤Г
╨Ю╤Б╤В╨░╨╗╨╛╤Б╤М ╨╜╨╡╨╝╨╜╨╛╨│╨╛: ╨▓╨╜╨╡╤Б╨╡╨╝ ╨╜╨╡╨▒╨╛╨╗╤М╤И╨╕╨╡ ╨╕╨╖╨╝╨╡╨╜╨╡╨╜╨╕╤П ╨▓ ╤Б╨░╨╝ ╨┐╤А╨╛╨╡╨║╤В.
рдПрдбрд┐рдЯрд░рдордзреНрдпреЗ рдлрд╛рдЗрд▓ рдЙрдШрдбрд╛ ~/webogram/app/js/lib/mtproto.js
рдЖрдгрд┐ рддреНрдпрд╛рдЪреА рд╕реБрд░реБрд╡рд╛рдд рдЦрд╛рд▓реАрд▓ рдлреЙрд░реНрдордордзреНрдпреЗ рдЖрдгрд╛:
/*!
* Webogram v0.7.0 - messaging web application for MTProto
* https://github.com/zhukov/webogram
* Copyright (C) 2014 Igor Zhukov <[email protected]>
* https://github.com/zhukov/webogram/blob/master/LICENSE
*/
angular.module('izhukov.mtproto', ['izhukov.utils'])
.factory('MtpDcConfigurator', function () {
var sslSubdomains = ['pluto', 'venus', 'aurora', 'vesta', 'flora']
var dcOptions = Config.Modes.test
? [
{id: 1, host: 'mywebogram.localhost/DC1', port: 80},
{id: 2, host: 'mywebogram.localhost/DC2', port: 80},
{id: 3, host: 'mywebogram.localhost/DC3', port: 80}
]
: [
{id: 1, host: 'mywebogram.localhost/DC4', port: 80},
{id: 2, host: 'mywebogram.localhost/DC5', port: 80},
{id: 3, host: 'mywebogram.localhost/DC6', port: 80},
{id: 4, host: 'mywebogram.localhost/DC7', port: 80},
{id: 5, host: 'mywebogram.localhost/DC8', port: 80}
]
var chosenServers = {}
function chooseServer (dcID, upload) {
if (chosenServers[dcID] === undefined) {
var chosenServer = false,
i, dcOption
if (Config.Modes.ssl || !Config.Modes.http) {
var subdomain = sslSubdomains[dcID - 1] + (upload ? '-1' : '')
var path = Config.Modes.test ? 'apiw_test1' : '/apiw1/'
chosenServer = 'https://mywebogram.localhost/' + subdomain + path
return chosenServer
}
for (i = 0; i < dcOptions.length; i++) {
dcOption = dcOptions[i]
if (dcOption.id == dcID) {
chosenServer = 'http://' + dcOption.host + '/apiw1'
break
}
}
chosenServers[dcID] = chosenServer
}
...
рдпрд╛рдирдВрддрд░, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдмреНрд░рд╛рдЙрдЭрд░рдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреГрд╖реНрда рд░реАрдлреНрд░реЗрд╢ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рддреБрдордЪреЗ рдмреНрд░рд╛рдЙрдЭрд░ рдХрдиреНрд╕реЛрд▓ рдЙрдШрдбрд╛ рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╣рд╛. рд╕рд░реНрд╡ рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдХрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕ рдЖрдгрд┐ XHR рд╡рд┐рдирдВрддреНрдпрд╛ рддреБрдордЪреНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдЧреЗрд▓реНрдпрд╛рд╕, рд╕рд░реНрд╡рдХрд╛рд╣реА рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдЖрдгрд┐ рд╡реЗрдмрдЧреНрд░рд╛рдо рдЖрддрд╛ nginx рджреНрд╡рд╛рд░реЗ рдкреНрд░реЙрдХреНрд╕реА рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рд╣реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдорд╛рдЭреНрдпрд╛рд╢рд┐рд╡рд╛рдп рдЗрддрд░ рдХреЛрдгрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.
рд╢реЗрд╡рдЯрдкрд░реНрдпрдВрдд рд╡рд╛рдЪрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддреНрдпреЗрдХрд╛рдЪреЗ рдордирд╛рдкрд╛рд╕реВрди рдЖрднрд╛рд░.
рдХреЛрдгрд╛рд▓рд╛ рдХрд╛рд╣реА рдЕрдбрдЪрдг рдЕрд╕рд▓реНрдпрд╛рд╕ рдХрд┐рдВрд╡рд╛ рдореА рдХрд╛рд╣реА рдЪреБрдХреАрдЪреЗ рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдорд▓рд╛ рдЙрддреНрддрд░ рджреЗрдгреНрдпрд╛рдд рдЖрдирдВрдж рд╣реЛрдИрд▓ рдЖрдгрд┐ рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ PM рдордзреНрдпреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдорджрдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реЗрди.
рд╕реНрддреНрд░реЛрдд: www.habr.com