БъздавамС своя инстанс Π½Π° Webogram с прокси ΠΏΡ€Π΅Π· nginx

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅, Π₯Π°Π±Ρ€!

Π‘ΠΊΠΎΡ€ΠΎ срСщнах ситуация, Π² която Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° работя Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Π° ΠΌΡ€Π΅ΠΆΠ° с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΈ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС досСтитС ΠΏΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅Ρ‚ΠΎ β€” Telegram бСшС Π±Π»ΠΎΠΊΠΈΡ€Π°Π½. Π‘ΠΈΠ³ΡƒΡ€Π΅Π½ съм, Ρ‡Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€Π° са Π·Π°ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ с Ρ‚Π°Π·ΠΈ ситуация.

Мога Π΄Π° сС справя Π±Π΅Π· ΠΌΠ΅ΡΠΈΠ½Π΄ΠΆΡŠΡ€ΠΈ, Π½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Telegram ΠΌΠΈ бСшС Π½ΡƒΠΆΠ΅Π½ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°. НС ΠΌΠΎΠΆΠ΅Ρ… Π΄Π° инсталирам ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° работния ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€, Π° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° личния Π»Π°ΠΏΡ‚ΠΎΠΏ Π½Π΅ бСшС опция. Π”Ρ€ΡƒΠ³ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΈΠΆΠ΄Π°ΠΌ, Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½Π°Ρ‚Π° ΡƒΠ΅Π± вСрсия, Π½ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС досСтитС β€” тя ΡΡŠΡ‰ΠΎ бСшС Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π°. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΡŠΡ‚ с Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅Ρ‚ΠΎ Π½Π° Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎ ΠΎΠ³Π»Π΅Π΄Π°Π»ΠΎ Π²Π΅Π΄Π½Π°Π³Π° Π³ΠΎ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌ (надявам сС ΠΏΠΎ доста ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ).

Π—Π° щастиС, Webogram Π΅ open-source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Ρ‡ΠΈΠΉΡ‚ΠΎ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΠΊΠΎΠ΄ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π² github ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€Π° ΠΌΡƒ (ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ благодаря Π·Π° Ρ‚ΠΎΠ²Π°!)
Π‘Π°ΠΌΠ°Ρ‚Π° инсталация ΠΈ стартиранС Π½Π΅ прСдставляват Π½ΠΈΡ‰ΠΎ слоТно, Π½ΠΎ ΠΏΡ€ΠΈ условия Π½Π° Сксплоатация Π² ΠΌΡ€Π΅ΠΆΠ° с Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π° Telegram, ΠΏΠΎ-скоро Π²ΠΈ ΠΎΡ‡Π°ΠΊΠ²Π° Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ успСх, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ ΡƒΠ΅Π± вСрсията ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° заявки към ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π° Telegram ΠΎΡ‚ ΠΌΠ°ΡˆΠΈΠ½Π°Ρ‚Π° Π½Π° потрСбитСля.

Π—Π° щастиС, Ρ‚ΠΎΠ²Π° Π΅ доста просто (Π½ΠΎ Π½Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ) Π΄Π° сС ΠΏΠΎΠΏΡ€Π°Π²ΠΈ. Искам Π΄Π° прСдупрСдя, Ρ‡Π΅ Π½Π΅ съм Π°Π²Ρ‚ΠΎΡ€ Π½Π° Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Успях Π΄Π° Π³ΠΎ намСря Π² Ρ‚Π΅ΠΌΠ°, Π² която сС обсъТдашС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° моя. Π Π΅ΡˆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΎΡ‚ потрСбитСля github tecknojock, ΠΌΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ съм сигурСн, Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ, Π·Π°Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠΈΡ… Π΄Π° напиша Ρ‚ΠΎΠ·ΠΈ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π».

ΠŸΠΎΠ΄ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π½ΠΎ Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΡΡ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ° настройка Π½Π° собствСно ΠΎΠ³Π»Π΅Π΄Π°Π»ΠΎ Webogram ΠΈ настройки Π·Π° проксиранС Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ заявки Π΄ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π° Telegram с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° nginx.

ΠšΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ·Π±Ρ€Π°Ρ… наскоро инсталиран ΠΈ ΠΎΠ±Π½ΠΎΠ²Π΅Π½ Ubuntu Server 18.04.3.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π» няма Π΄Π° ΠΈΠΌΠ° инструкции Π·Π° настройка Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ Π² nginx. Π’ΠΎΠ²Π° трябва Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ сами. Π’ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π»ΡŠΡ‚ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°, Ρ‡Π΅ Π²Π΅Ρ‡Π΅ стС настроили Π΄ΠΎΠΌΠ΅ΠΉΠ½ с ssl, Π° ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€Π°Ρ‚Π΅ настройката, ΠΈΠΌΠ° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π° Telegram (ΠΏΠΎ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚Π΅)

Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ ip Π°Π΄Ρ€Π΅ΡΡŠΡ‚ Π½Π° Ρ‚ΠΎΠ·ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ Π΅ 10.23.0.3, Π° Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ Π΅ mywebogram.localhost.

Π˜Π·Ρ…ΠΎΠΆΠ΄Π°ΠΉΠΊΠΈ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ прСдпоставки, Ρ‰Π΅ Π΄Π°Π²Π°ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. НС забравяйтС Π΄Π° Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ стойноститС с Π²Π°ΡˆΠΈΡ‚Π΅.

И Ρ‚Π°ΠΊΠ°, Π½Π΅ΠΊΠ° Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ:

Π—Π° Π΄Π° стартирамС Webogram, ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡƒΠΆΠ΄Π° ΠΎΡ‚ nodejs. По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, Π°ΠΊΠΎ Π³ΠΎ инсталирамС ΠΎΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅ Π½Π° 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

Π˜Π·Π±ΠΈΡ€Π°ΠΌΠ΅ мястото, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ Ρ‰Π΅ бъдС Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° Webogram.

НапримСр, Ρ‰Π΅ я Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ Π² ΠΊΠΎΡ€Π΅Π½Π° Π½Π° Π΄ΠΎΠΌΠ°ΡˆΠ½Π°Ρ‚Π° дирСктория. Π—Π° Ρ†Π΅Π»Ρ‚Π° ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°ΠΌΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»Π½ΠΎΡ‚ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° нашия ΡΡŠΡ€Π²ΡŠΡ€:

cd ~ && git clone https://github.com/zhukov/webogram.git

Π‘Π»Π΅Π΄Π²Π°Ρ‰Π°Ρ‚Π° ΡΡ‚ΡŠΠΏΠΊΠ° Π΅ Π΄Π° инсталирамС всички зависимости, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° стартиранСто Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ:

cd webogram && npm install

НСка ΠΏΡ€ΠΎΠ±Π²Π°ΠΌΠ΅ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΠΌ тСстово стартиранС. Π˜Π·ΠΏΡŠΠ»Π½Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°:

npm start

Π‘Π»Π΅Π΄ ΠΊΠΎΠ΅Ρ‚ΠΎ, ΠΎΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄Π° ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°

 http://10.23.0.3:8000/app/index.html

Ако Π΄ΠΎ Ρ‚ΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ‚ всичко стС Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Ρ‰Π΅ сС ΠΎΡ‚Π²ΠΎΡ€ΠΈ страница Π·Π° Π²Ρ…ΠΎΠ΄ Π² Webogram.

Π‘Π΅Π³Π° трябва Π΄Π° настроим стартиранСто Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ услуга. Π—Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ създадСм Ρ„Π°ΠΉΠ»

sudo touch /lib/systemd/system/webogram.service

отварямС Π³ΠΎ Π² ΡƒΠ΄ΠΎΠ±Π΅Π½ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ ΠΏΡ€ΠΈΠ΄Π°Π²Π°ΠΌΠ΅ слСдния Π²ΠΈΠ΄ (вписвамС своя ΠΏΡŠΡ‚ Π΄ΠΎ WorkDirectory)

[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

Π‘Π»Π΅Π΄ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈΡ‚Π΅ дСйствия, Webogram Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π΄Π° бъдС Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π½Π° ΠΏΠΎΡ€Ρ‚ 8000.

Въй ΠΊΠ°Ρ‚ΠΎ Ρ‰Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΌΠ΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ нашия Webogram ΠΏΡ€Π΅Π· 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. ΠžΠ±ΡŠΡ€Π½Π΅Ρ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Π΅ Ρ‰Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π² конфигурационния Ρ„Π°ΠΉΠ» Π½Π° Π΄ΠΎΠΌΠ΅Π½Π° Π·Π° ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°:


ΡΡŠΡ€Π²ΡŠΡ€ {
...
  мСстополоТСниС ^~ /pluto/apiw1/ {
    proxy_pass https://pluto.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /venus/apiw1/ {
    proxy_pass https://venus.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /aurora/apiw1/ {
    proxy_pass https://aurora.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /vesta/apiw1/ {
    proxy_pass https://vesta.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /flora/apiw1/ {
    proxy_pass https://flora.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /pluto-1/apiw1/ {
    proxy_pass https://pluto-1.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /venus-1/apiw1/ {
    proxy_pass https://venus-1.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /aurora-1/apiw1/ {
    proxy_pass https://aurora-1.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /vesta-1/apiw1/ {
    proxy_pass https://vesta-1.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /flora-1/apiw1/ {
    proxy_pass https://flora-1.web.telegram.org/apiw1/;
  }
  мСстополоТСниС ^~ /DC1/ {
    proxy_pass http://149.154.175.10:80/;
  }
  мСстополоТСниС ^~ /DC2/ {
    proxy_pass http://149.154.167.40:80/;
  }
  мСстополоТСниС ^~ /DC3/ {
    proxy_pass http://149.154.175.117:80/;
  }
  мСстополоТСниС ^~ /DC4/ {
    proxy_pass http://149.154.175.50:80/;
  }
  мСстополоТСниС ^~ /DC5/ {
    proxy_pass http://149.154.167.51:80/;
  }
  мСстополоТСниС ^~ /DC6/ {
    proxy_pass http://149.154.175.100:80/;
  }
  мСстополоТСниС ^~ /DC7/ {
    proxy_pass http://149.154.167.91:80/;
  }
  мСстополоТСниС ^~ /DC8/ {
    proxy_pass http://149.154.171.5:80/;
  }
 мСстополоТСниС / {
    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, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ отговаря Webogram.
  • ΠšΠΎΡ€Π΅Π½ΠΎΠ²ΠΎΡ‚ΠΎ мСстополоТСниС затварямС с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° basic-auth. Π’ΠΎΠ²Π° Π΅ чисто символичСн шаг, Π·Π° Π΄Π° Π·Π°ΠΊΡ€ΠΈΠ΅ΠΌ Π½Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ Π½Π΅ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ ΠΎΡ‡ΠΈ ΠΈ Π±ΠΎΡ‚ΠΎΠ²Π΅. (ΠšΠ°ΠΊΡ‚ΠΎ ΠΈ Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈΡ‚Π΅)
  • ΠšΡƒΠΏΡ‡ΠΈΠ½Π° мСстополоТСния с proxy_path към ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π½Π° Telegram β€” Ρ‚ΠΎΠ²Π° са ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π°ΡˆΠΈΡ‚Π΅ Π΅Π½Π΄ΠΏΠΎΠΉΠ½Ρ‚ΠΈ, ΠΏΡ€Π΅Π· ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ проксирим Π½Π°ΡˆΠΈΡ‚Π΅ заявки.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, Ρ‰Π΅ създадСм Ρ„Π°ΠΉΠ» /etc/nginx/passwd.htpasswd;, Π·Π° Π΄Π° ΠΈΠΌΠ° nginx с ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° сравнява ΠΏΠ°Ρ€ΠΎΠ»ΠΈΡ‚Π΅ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅.

sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/passwd.htpasswd tg

БъздавамС своя инстанс Π½Π° Webogram с прокси ΠΏΡ€Π΅Π· nginx

РСстартирамС nginx:

sudo systemctl restart nginx

Π‘Π΅Π³Π° Webogram Ρ‰Π΅ бъдС Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ само Π½Π° адрСса mywebogram.localhost/app/index.html слСд ΠΊΠ°Ρ‚ΠΎ Π±ΡŠΠ΄Π°Ρ‚ въвСдСни потрСбитСлското ΠΈΠΌΠ΅ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π°, ΠΊΠΎΠΈΡ‚ΠΎ стС Π·Π°Π΄Π°Π»ΠΈ ΠΏΡ€ΠΈ ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° htpasswd.

ΠžΡΡ‚Π°Π½Π° ΠΌΠ°Π»ΠΊΠΎ: Π½Π΅ΠΊΠ° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ извСстни измСнСния Π² самия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

ΠžΡ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Ρ„Π°ΠΉΠ»Π° ~/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 <igor.beatle@gmail.com>
 * 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 заявкитС ΠΎΡ‚ΠΈΠ²Π°Ρ‚ Π½Π° вашия ΡΡŠΡ€Π²ΡŠΡ€ β€” Π·Π½Π°Ρ‡ΠΈ всичко Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΈ Webogram сСга сС проксира ΠΏΡ€Π΅Π· nginx.

БъздавамС своя инстанс Π½Π° Webogram с прокси ΠΏΡ€Π΅Π· nginx

Надявам сС, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ Ρ‚ΡƒΡ‚ΠΎΡ€ΠΈΠ°Π» Ρ‰Π΅ бъдС ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΈ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ, освСн Π·Π° ΠΌΠ΅Π½.

Благодаря Π½Π° всички, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚ΠΎΡ…Π° Π΄ΠΎ края.

Ако някой ΠΈΠΌΠ° затруднСния ΠΈΠ»ΠΈ съм допуснал нСточности β€” с удоволствиС Ρ‰Π΅ отговоря ΠΈ Ρ‰Π΅ сС постарая Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π° Π² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π½Π° Π»ΠΈΡ‡Π½ΠΈ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster