рд╣реЗ рд╣рд╛рдмрд░!
рднрд░реНрдЦрд░реИ рдореИрд▓реЗ рдЖрдлреВрд▓рд╛рдИ рдПрдЙрдЯрд╛ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдорд╛ рднреЗрдЯреНрдЯрд╛рдПрдБ рдЬрд╕рдорд╛ рдЗрдиреНрдЯрд░рдиреЗрдЯрдорд╛ рдЕрдкреВрд░реНрдг рдкрд╣реБрдБрдЪрдХреЛ рд╕рд╛рде рдХрд░реНрдкреЛрд░реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рднрд┐рддреНрд░ рдХрд╛рдо рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛ рд░, рддрдкрд╛рдИрд▓реЗ рд╢реАрд░реНрд╖рдХрдмрд╛рдЯ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдпрд╕рдорд╛ рдЕрд╡рд░реБрджреНрдз рдерд┐рдпреЛред рдо рдкрдХреНрдХрд╛ рдЫреБ рдХрд┐ рдпреЛ рдЕрд╡рд╕реНрдерд╛ рдзреЗрд░реИрд▓рд╛рдИ рдкрд░рд┐рдЪрд┐рдд рдЫред
рдо рддрддреНрдХрд╛рд▓ рд╕рдиреНрджреЗрд╢рд╡рд╛рд╣рдХ рдмрд┐рдирд╛ рдЧрд░реНрди рд╕рдХреНрдЫреБ, рддрд░ рдпреЛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдерд┐рдпреЛ рдЬреБрди рдорд▓рд╛рдИ рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХ рдерд┐рдпреЛред рдХрд╛рд░реНрдп рдореЗрд╕рд┐рдирдорд╛ рдЧреНрд░рд╛рд╣рдХ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдореНрднрд╡ рдерд┐рдПрди, рди рдд рд╡реНрдпрдХреНрддрд┐рдЧрдд рд▓реНрдпрд╛рдкрдЯрдк рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдореНрднрд╡ рдерд┐рдпреЛред рдЕрд░реНрдХреЛ рдЙрдкрд╛рдп рдпреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рджреЗрдЦрд┐рдиреНрдЫ
рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, рд╡реЗрдмрдЧреНрд░рд╛рдо рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реЛ рдЬрд╕рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдЙрдкрд▓рдмреНрдз рдЫ
рд╕реНрдерд╛рдкрдирд╛ рд░ рд╕реБрд░реБрд╡рд╛рдд рдЖрдлреИрдВрдорд╛ рдЧрд╛рд╣реНрд░реЛ рдЫреИрди, рдпрджреНрдпрдкрд┐, рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдЕрд╡рд░реБрджреНрдз рдкрд╣реБрдБрдЪрдХреЛ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рднрд┐рддреНрд░ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдЕрд╡рд╕реНрдерд╛рд╣рд░реВрдорд╛, рддрдкрд╛рдЗрдБ рд╕рдлрд▓ рднрдиреНрджрд╛ рдирд┐рд░рд╛рд╢ рд╣реБрдиреБрд╣реБрдиреЗрдЫ, рдХрд┐рдирдХрд┐ рд╡реЗрдм рд╕рдВрд╕реНрдХрд░рдгрд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдореЗрд╕рд┐рдирдмрд╛рдЯ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдкрдард╛рдЙрдБрджрдЫред
рд╕реМрднрд╛рдЧреНрдп рджреЗрдЦрд┐, рдпреЛ рдПрдХрджрдо рд╕рд░рд▓ рдЫ (рддрд░ рдзреЗрд░реИ рд╕реНрдкрд╖реНрдЯ рдЫреИрди) рдлрд┐рдХреНрд╕ред рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЪреЗрддрд╛рд╡рдиреА рджрд┐рди рдЪрд╛рд╣рдиреНрдЫреБ рдХрд┐ рдо рдпреЛ рд╕рдорд╛рдзрд╛рдирдХреЛ рд▓реЗрдЦрдХ рд╣реЛрдЗрдиред рдореИрд▓реЗ рднрд┐рддреНрд░ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдлрд▓ рднрдПрдБ
рдХрдЯ рддрд▓ рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рд╡реЗрдмрдЧреНрд░рд╛рдо рдорд┐рд░рд░рдХреЛ рдЪрд░рдг-рджрд░-рдЪрд░рдг рд╕реЗрдЯрдЕрдк рд░ nginx рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдкреНрд░реЛрдХреНрд╕реА рдЧрд░реНрдиреЗ рд╕реЗрдЯрдЕрдк рдкрд╛рдЙрдиреБрд╣реБрдиреЗрдЫред
рдЙрджрд╛рд╣рд░рдгрдХреЛ рд░реВрдкрдорд╛, рдореИрд▓реЗ рднрд░реНрдЦрд░реИ рд╕реНрдерд╛рдкрд┐рдд рд░ рдЕрдкрдбреЗрдЯ рдЧрд░рд┐рдПрдХреЛ Ubuntu рд╕рд░реНрднрд░ 18.04.3 рд░реЛрдЬреЗрдХреЛ рдЫреБред
рдЪреЗрддрд╛рд╡рдиреА: рдпреЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рд▓реЗ nginx рдорд╛ рдбреЛрдореЗрди рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджреИрдиред рддрдкрд╛рдИ рдЖрдлреИрд▓реЗ рдпреЛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рд▓реЗ рдорд╛рдиреНрджрдЫ рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ ssl рд╕рдБрдЧ рдбреЛрдореЗрди рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рд╕рдХреНрдиреБрднрдПрдХреЛ рдЫ, рд░ рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рдпреЛрдЬрдирд╛ рдмрдирд╛рдЙрдиреБ рднрдПрдХреЛ рд╕рд░реНрднрд░рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдкрд╣реБрдБрдЪ рдЫ (рддрдкрд╛рдИрдВрд▓рд╛рдИ рдордирдкрд░реНрдиреЗ рдХреБрдиреИ рдкрдирд┐ рддрд░рд┐рдХрд╛рдорд╛)ред
рдорд╛рдиреМрдВ рдХрд┐ рдпреЛ рд╕рд░реНрднрд░рдХреЛ ip 10.23.0.3 рд╣реЛ, рд░ рдбреЛрдореЗрди рдирд╛рдо mywebogram.localhost рд╣реЛред
рдпреА рдЕрдзрд┐рд╡реЗрд╢рдирд╣рд░реВрдорд╛ рдЖрдзрд╛рд░рд┐рдд, рдо рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВрдХреЛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдиреЗрдЫреБред рдЖрдлреНрдиреЛ рдЖрдлреНрдиреИ рдорд╛рдирд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдирдмрд┐рд░реНрд╕рдиреБрд╣реЛрд╕реНред
рддреНрдпрд╕реЛ рднрдП рд╕реБрд░реВ рдЧрд░реМрдВ:
рд╡реЗрдмрдЧреНрд░рд╛рдо рдЪрд▓рд╛рдЙрди, рд╣рд╛рдореАрд▓рд╛рдИ рдиреЛрдбрдЬ рдЪрд╛рд╣рд┐рдиреНрдЫред рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ Ubuntu рднрдгреНрдбрд╛рд░рд╣рд░реВрдмрд╛рдЯ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдЫреМрдВ рднрдиреЗ, рд╣рд╛рдореАрд▓реЗ 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
autorun рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН:
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 рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдХреЗ рдердкреНрдЫреМрдВ:
- рд╣рд╛рдореА рд░реВрдЯ рд╕реНрдерд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдЫреМрдВ, рдЬрд╕рд▓реЗ рдкреЛрд░реНрдЯ 8000 рдорд╛ рдкреНрд░реЛрдХреНрд╕реА рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреЗрдЫ, рдЬрд╕рдорд╛ рд╡реЗрдмрдЧреНрд░рд╛рдорд▓реЗ рдЬрд╡рд╛рдл рджрд┐рдиреНрдЫред
- рд╣рд╛рдореА рдЖрдзрд╛рд░рднреВрдд-рд▓реЗрдЦрди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдореВрд▓ рд╕реНрдерд╛рди рдмрдиреНрдж рдЧрд░реНрдЫреМрдВред рдпреЛ рдПрдХ рд╡рд┐рд╢реБрджреНрдз рд╕рд╛рдВрдХреЗрддрд┐рдХ рдХрджрдо рд╣реЛ рдЬреБрди рд╣рд╛рдореНрд░реЛ рдПрдкреНрд▓рд┐рдХреЗрд╕рдирд▓рд╛рдИ рдЖрдБрдЦрд╛ рд░ рдмрдЯрд╣рд░реВрдмрд╛рдЯ рдмрдиреНрдж рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛред (рд░ рдЕрд╡рд░реБрджреНрдзрдХреЛ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдмрд╛рдЯ рдмрдЪреНрди рдкрдирд┐)
- рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕рд░реНрднрд░рдорд╛ 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
рдЕрдм Webgram рдорд╛ рдорд╛рддреНрд░ рдЙрдкрд▓рдмреНрдз рд╣реБрдиреЗрдЫ
рддреНрдпрд╣рд╛рдБ рдереЛрд░реИ рдмрд╛рдБрдХреА рдЫ: рд╣рд╛рдореА рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛтАЛтАЛрд╕рд╛рдирд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реНрдиреЗрдЫреМрдВред
рд╕рдореНрдкрд╛рджрдХрдорд╛ рдлрд╛рдЗрд▓ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН ~/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