Hei Habr!
Munguva pfupi yapfuura ndakazviwana ndiri mumamiriro ezvinhu umo zvaive zvakafanira kushanda mukati mekambani network ine isina kukwana kuwana kuInternet uye, sezvaungafungidzira kubva pazita racho, Telegraph yakavharwa mairi. Ndine chokwadi chokuti mamiriro ezvinhu aya anozivikanwa nevakawanda.
Ndinogona kuita pasina vatumwa ipapo, asi Telegraph ndiyo yandaida kubasa. Zvakanga zvisingaite kuisa mutengi pamushini webasa, uye zvaisakwanisika kushandisa munhu laptop. Imwe mhinduro inoratidzika kuva yekuishandisa
Neraki, Webogram ndeye yakavhurika sosi purojekiti iyo sosi kodhi inowanikwa mukati
Kuiswa uye kuzvitanga hakuna kuoma, zvisinei, mumamiriro ekushanda mukati metiweki ine yakavharwa kupinda kune Telegraph maseva, iwe uchanyanya kuodzwa mwoyo pane kubudirira, sezvo iyo webhu vhezheni inotumira zvikumbiro kumaseva eTeregiramu kubva kumushini wemushandisi.
Neraki, iyi iri nyore (asi isiri pachena) kugadzirisa. Ndinoda kukuyambirai kuti handisini munyori wemhinduro iyi. Ndakakwanisa kuiwana mukati
Pazasi pekucheka iwe unowana nhanho-ne-nhanho yekumisikidza yako Webogram girazi uye kuseta yekumiririra zvikumbiro zvayo kumaseva eTeregiramu uchishandisa nginx.
Semuenzaniso, ndakasarudza ichangobva kuiswa uye yakagadziridzwa Ubuntu Server 18.04.3.
Yambiro: Ichi chidzidzo hachizosanganisira mirairo yekumisikidza domain mu nginx. Iwe unofanirwa kuita izvi iwe pachako. Iyo tutori inofungidzira kuti iwe wakatogadzira dura ne ssl, uye kuti sevha pachayo yaunoronga kumisikidza iyo inokwanisa kuwana iyo Telegraph maseva (nechero nzira yaunoda)
Ngatifungei kuti ip ye server iyi 10.23.0.3, uye zita renzvimbo ndi mywebogram.localhost
Kubva pazvibvumirano izvi, ini ndichapa mienzaniso yezvigadziriso. Usakanganwa kushandura hunhu kuve hwako.
Saka ngatitangei:
Kuti timhanye Webogram, tinoda nodejs. Nenguva isipi, kana tikaiisa kubva kuUbuntu repositories, tichawana nodejs vhezheni 8.x. Tinoda 12.x:
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt update && sudo apt -y install nodejs
Isu tinosarudza nzvimbo iyo Webogram yedu ichave yakavakirwa.
Semuenzaniso, ngatiiise mumudzi wedhairekitori repamba. Kuti uite izvi, gadzira iyo yepamutemo repository kune yedu server:
cd ~ && git clone https://github.com/zhukov/webogram.git
Nhanho inotevera ndeyekuisa zvese zvinoenderana nezvinodiwa kuti umhanye application:
cd webogram && npm install
Ngatiedzei bvunzo kumhanya. Mhanya murairo:
npm start
Mushure meizvozvo, tinoedza kuivhura mubrowser
http://10.23.0.3:8000/app/index.html
Kana kusvika panguva ino waita zvese nemazvo, peji remvumo reWebogram richavhurwa.
Zvino isu tinoda kugadzirisa iyo application kuti iite sevhisi. Kuti tiite izvi, ngatigadzirirei faira
sudo touch /lib/systemd/system/webogram.service
vhura mune chero edhita uye upe iyo inotevera kutaridzika (isa nzira yako kuenda kuWorkDirectory)
[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
Zvadaro tinomhanya mirairo inotevera:
Kushandisa shanduko
sudo systemctl daemon-reload
Gonesa autorun:
sudo systemctl enable webogram.service
Ngatitangei sevhisi:
sudo systemctl start webogram.service
Mushure mekupedza matanho, Webogram icharamba ichiwanikwa pachiteshi 8000.
Sezvo tichange tichigadzira kupinda kune yedu Webogram kuburikidza ne nginx, isu tichavhara port 8000 yezvikumbiro kubva kunze.
Isu tinoshandisa udf utility kune izvi (kana chero nzira yakakunakira):
sudo ufw deny 8000
Kana iwe uchiri kufunga kushandisa udf, asi yakaremara pane sevha, wedzera mimwe mitemo (kuti zvese zvirege kuparara) uye gonesa udf:
sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
Tevere, ngatitange kushandura iyo nginx kumisikidzwa.
Sezvandakanyevera pamusoro, zvinofungidzirwa kuti domain ine ssl yakatogadzirwa pane server yako. Ini chete ndichakwevera kutarisa kwako kune izvo zvichada kuwedzerwa kune iyo domain yekumisikidza faira kuti ishande nemazvo:
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;
}
}
Zvatinowedzera kune nginx config:
- Isu tinoshandura nzvimbo yemidzi, iyo inozokumbira proxy kuchiteshi 8000, iyo Webogram inopindura
- Isu tinovhara nzvimbo yemidzi tichishandisa basic-auth. Iri idanho rekufananidzira rekuvhara application yedu kubva pakuona maziso uye bots. (Uye zvakare kudzivirira matambudziko nekuvhara)
- Boka renzvimbo dzine proxy_path paTeregiramu server ndiwo chaiwo magumo edu atinozomiririra zvikumbiro zvedu.
Zvakare, ngatigadzirirei faira /etc/nginx/passwd.htpasswd;
kuitira kuti nginx ive nechimwe chekutarisa mapassword emushandisi.
sudo apt install apache2-utils
sudo htpasswd -c /etc/nginx/passwd.htpasswd tg
Tangazve nginx:
sudo systemctl restart nginx
Iye zvino Webogram inongowanikwa pa
Pane zvishoma zvakasara: tichaita shanduko diki kuprojekiti pachayo.
Vhura iyo faira mupepeti ~/webogram/app/js/lib/mtproto.js
Uye kuunza kutanga kwayo kune inotevera fomu:
/*!
* 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
}
...
Mushure meizvi, unofanirwa kuzorodza peji rekushandisa mubrowser.
Vhura browser yako koni uye tarisa kune network zvikumbiro zvekushandisa. Kana zvese zvichishanda uye zvikumbiro zveXHR zvichienda kune server yako, zvese zvinoitwa nemazvo, uye Webogram ikozvino yave proxied via nginx.
Ndinovimba kuti chidzidzo ichi chichabatsira kune mumwe munhu kunze kwangu.
Ndinotenda zvikuru kune wese akaverenga kusvika kumagumo.
Kana paine chero munhu ane chero matambudziko kana ini ndakaita chero zvisizvo, ini ndichafara kupindura uye kuyedza kukubatsira mune zvakataurwa kana muPM.
Source: www.habr.com