nginx ಮೂಲಕ ಪ್ರಾಕ್ಸಿ ಮಾಡುವುದರೊಂದಿಗೆ ನಾವು ನಮ್ಮ ವೆಬ್‌ಗ್ರಾಮ್ ನಿದರ್ಶನವನ್ನು ಹೆಚ್ಚಿಸುತ್ತೇವೆ

ಹಲೋ, ಹಬ್ರ್!

ಇಂಟರ್ನೆಟ್‌ಗೆ ಅಪೂರ್ಣ ಪ್ರವೇಶದೊಂದಿಗೆ ಕಾರ್ಪೊರೇಟ್ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಕೆಲಸ ಮಾಡಲು ಅಗತ್ಯವಾದ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ ಇತ್ತೀಚೆಗೆ ನಾನು ಕಂಡುಕೊಂಡಿದ್ದೇನೆ ಮತ್ತು ಶೀರ್ಷಿಕೆಯಿಂದ ನೀವು ಊಹಿಸುವಂತೆ, ಟೆಲಿಗ್ರಾಮ್ ಅನ್ನು ಅದರಲ್ಲಿ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ. ಈ ಪರಿಸ್ಥಿತಿಯು ಅನೇಕರಿಗೆ ಪರಿಚಿತವಾಗಿದೆ ಎಂದು ನನಗೆ ಖಾತ್ರಿಯಿದೆ.

ನಾನು ತ್ವರಿತ ಸಂದೇಶವಾಹಕಗಳಿಲ್ಲದೆ ಮಾಡಬಹುದು, ಆದರೆ ಇದು ನನಗೆ ಕೆಲಸಕ್ಕಾಗಿ ಬೇಕಾಗಿರುವುದು ಟೆಲಿಗ್ರಾಮ್. ಕೆಲಸದ ಯಂತ್ರದಲ್ಲಿ ಕ್ಲೈಂಟ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ಅಥವಾ ವೈಯಕ್ತಿಕ ಲ್ಯಾಪ್ಟಾಪ್ ಅನ್ನು ಬಳಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಅದನ್ನು ಬಳಸುವುದು ಮತ್ತೊಂದು ಪರಿಹಾರವೆಂದು ತೋರುತ್ತದೆ ಅಧಿಕೃತ ವೆಬ್ ಆವೃತ್ತಿ, ಆದರೆ ನೀವು ಊಹಿಸುವಂತೆ, ಇದು ಸಹ ಲಭ್ಯವಿಲ್ಲ. ಅನಧಿಕೃತ ಕನ್ನಡಿಯನ್ನು ಹುಡುಕುವ ಆಯ್ಕೆಯನ್ನು ನಾನು ತಕ್ಷಣವೇ ದಾಟುತ್ತೇನೆ (ಸ್ಪಷ್ಟ ಕಾರಣಗಳಿಗಾಗಿ ನಾನು ಭಾವಿಸುತ್ತೇನೆ).

ಅದೃಷ್ಟವಶಾತ್, ವೆಬ್‌ಗ್ರಾಮ್ ಮುಕ್ತ ಮೂಲ ಯೋಜನೆಯಾಗಿದ್ದು, ಅದರ ಮೂಲ ಕೋಡ್ ಲಭ್ಯವಿದೆ GitHub ಅದರ ಲೇಖಕ (ಇದಕ್ಕಾಗಿ ಅವರಿಗೆ ಅನೇಕ ಧನ್ಯವಾದಗಳು!)
ಅನುಸ್ಥಾಪನೆ ಮತ್ತು ಉಡಾವಣೆ ಸ್ವತಃ ಕಷ್ಟವೇನಲ್ಲ, ಆದಾಗ್ಯೂ, ಟೆಲಿಗ್ರಾಮ್ ಸರ್ವರ್‌ಗಳಿಗೆ ನಿರ್ಬಂಧಿಸಲಾದ ಪ್ರವೇಶದೊಂದಿಗೆ ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಕಾರ್ಯಾಚರಣೆಯ ಪರಿಸ್ಥಿತಿಗಳಲ್ಲಿ, ವೆಬ್ ಆವೃತ್ತಿಯು ಬಳಕೆದಾರರ ಯಂತ್ರದಿಂದ ಟೆಲಿಗ್ರಾಮ್ ಸರ್ವರ್‌ಗಳಿಗೆ ವಿನಂತಿಗಳನ್ನು ಕಳುಹಿಸುವುದರಿಂದ ನೀವು ಯಶಸ್ವಿಯಾಗುವುದಕ್ಕಿಂತ ಹೆಚ್ಚು ನಿರಾಶೆಗೊಳ್ಳುವ ಸಾಧ್ಯತೆಯಿದೆ.

ಅದೃಷ್ಟವಶಾತ್, ಇದು ಸರಳವಾದ (ಆದರೆ ಸ್ಪಷ್ಟವಾಗಿಲ್ಲ) ಪರಿಹಾರವಾಗಿದೆ. ನಾನು ಈ ಪರಿಹಾರದ ಲೇಖಕನಲ್ಲ ಎಂದು ನಿಮಗೆ ಎಚ್ಚರಿಕೆ ನೀಡಲು ನಾನು ಬಯಸುತ್ತೇನೆ. ನಾನು ಅದನ್ನು ಹುಡುಕುವಲ್ಲಿ ಯಶಸ್ವಿಯಾಗಿದ್ದೇನೆ ಶಾಖೆ, ಇದು ನನ್ನ ರೀತಿಯ ಸಮಸ್ಯೆಯನ್ನು ಚರ್ಚಿಸಿದೆ. ಗಿಥಬ್ ಬಳಕೆದಾರರು ಸೂಚಿಸಿದ ಪರಿಹಾರ ಟೆಕ್ನೋಜಾಕ್, ಇದು ನನಗೆ ಬಹಳಷ್ಟು ಸಹಾಯ ಮಾಡಿದೆ, ಆದಾಗ್ಯೂ, ಇದು ಬೇರೆಯವರಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ ಎಂದು ನನಗೆ ಖಾತ್ರಿಯಿದೆ, ಆದ್ದರಿಂದ ನಾನು ಈ ಟ್ಯುಟೋರಿಯಲ್ ಬರೆಯಲು ನಿರ್ಧರಿಸಿದೆ.

ಕಟ್‌ನ ಕೆಳಗೆ ನಿಮ್ಮ ವೆಬ್‌ಗ್ರಾಮ್ ಮಿರರ್‌ನ ಹಂತ-ಹಂತದ ಸೆಟಪ್ ಮತ್ತು nginx ಅನ್ನು ಬಳಸಿಕೊಂಡು ಟೆಲಿಗ್ರಾಮ್ ಸರ್ವರ್‌ಗಳಿಗೆ ಅದರ ವಿನಂತಿಗಳನ್ನು ಪ್ರಾಕ್ಸಿ ಮಾಡುವ ಸೆಟಪ್ ಅನ್ನು ನೀವು ಕಾಣಬಹುದು.

ಉದಾಹರಣೆಯಾಗಿ, ನಾನು ಹೊಸದಾಗಿ ಸ್ಥಾಪಿಸಲಾದ ಮತ್ತು ನವೀಕರಿಸಿದ ಉಬುಂಟು ಸರ್ವರ್ 18.04.3 ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದೇನೆ.

ಎಚ್ಚರಿಕೆ: ಈ ಟ್ಯುಟೋರಿಯಲ್ nginx ನಲ್ಲಿ ಡೊಮೇನ್ ಅನ್ನು ಹೊಂದಿಸುವ ಸೂಚನೆಗಳನ್ನು ಒಳಗೊಂಡಿರುವುದಿಲ್ಲ. ನೀವೇ ಇದನ್ನು ಮಾಡಬೇಕಾಗಿದೆ. ನೀವು ಈಗಾಗಲೇ ssl ನೊಂದಿಗೆ ಡೊಮೇನ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ್ದೀರಿ ಮತ್ತು ಅದನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ನೀವು ಯೋಜಿಸಿರುವ ಸರ್ವರ್ ಸ್ವತಃ ಟೆಲಿಗ್ರಾಮ್ ಸರ್ವರ್‌ಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದೆ ಎಂದು ಟ್ಯುಟೋರಿಯಲ್ ಊಹಿಸುತ್ತದೆ (ನೀವು ಇಷ್ಟಪಡುವ ಯಾವುದೇ ರೀತಿಯಲ್ಲಿ)

ಈ ಸರ್ವರ್‌ನ ip 10.23.0.3 ಮತ್ತು ಡೊಮೇನ್ ಹೆಸರು mywebogram.localhost ಎಂದು ಭಾವಿಸೋಣ.

ಈ ಸಂಪ್ರದಾಯಗಳ ಆಧಾರದ ಮೇಲೆ, ನಾನು ಸಂರಚನೆಗಳ ಉದಾಹರಣೆಗಳನ್ನು ನೀಡುತ್ತೇನೆ. ಮೌಲ್ಯಗಳನ್ನು ನಿಮ್ಮ ಸ್ವಂತಕ್ಕೆ ಬದಲಾಯಿಸಲು ಮರೆಯಬೇಡಿ.

ಆದ್ದರಿಂದ ಪ್ರಾರಂಭಿಸೋಣ:

Webogram ರನ್ ಮಾಡಲು, ನಮಗೆ nodejs ಅಗತ್ಯವಿದೆ. ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ, ನಾವು ಅದನ್ನು ಉಬುಂಟು ರೆಪೊಸಿಟರಿಗಳಿಂದ ಸ್ಥಾಪಿಸಿದರೆ, ನಾವು 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

ಯಾವುದೇ ಸಂಪಾದಕದಲ್ಲಿ ಅದನ್ನು ತೆರೆಯಿರಿ ಮತ್ತು ಕೆಳಗಿನ ನೋಟವನ್ನು ನೀಡಿ (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

ಹಂತಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ನಂತರ, ವೆಬ್ಗ್ರಾಮ್ ಪೋರ್ಟ್ 8000 ನಲ್ಲಿ ಲಭ್ಯವಿರುತ್ತದೆ.

ನಾವು nginx ಮೂಲಕ ನಮ್ಮ ವೆಬ್‌ಗ್ರಾಮ್‌ಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಸುವುದರಿಂದ, ಹೊರಗಿನಿಂದ ವಿನಂತಿಗಳಿಗಾಗಿ ನಾವು ಪೋರ್ಟ್ 8000 ಅನ್ನು ಮುಚ್ಚುತ್ತೇವೆ.

ಇದಕ್ಕಾಗಿ ನಾವು ಯುಡಿಎಫ್ ಉಪಯುಕ್ತತೆಯನ್ನು ಬಳಸುತ್ತೇವೆ (ಅಥವಾ ನಿಮಗೆ ಅನುಕೂಲಕರವಾದ ಯಾವುದೇ ವಿಧಾನ):

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 ಗೆ ವಿನಂತಿಗಳನ್ನು ಪ್ರಾಕ್ಸಿ ಮಾಡುತ್ತದೆ, ಅದರ ಮೇಲೆ ವೆಬ್‌ಗ್ರಾಮ್ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ
  • ಮೂಲ ದೃಢೀಕರಣವನ್ನು ಬಳಸಿಕೊಂಡು ನಾವು ಮೂಲ ಸ್ಥಳವನ್ನು ಮುಚ್ಚುತ್ತೇವೆ. ಗೂಢಾಚಾರಿಕೆಯ ಕಣ್ಣುಗಳು ಮತ್ತು ಬಾಟ್‌ಗಳಿಂದ ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮುಚ್ಚಲು ಇದು ಸಂಪೂರ್ಣವಾಗಿ ಸಾಂಕೇತಿಕ ಹಂತವಾಗಿದೆ. (ಮತ್ತು ನಿರ್ಬಂಧಿಸುವುದರೊಂದಿಗೆ ಸಮಸ್ಯೆಗಳನ್ನು ತಪ್ಪಿಸಲು)
  • ಟೆಲಿಗ್ರಾಮ್ ಸರ್ವರ್‌ನಲ್ಲಿ ಪ್ರಾಕ್ಸಿ_ಪಾತ್ ಹೊಂದಿರುವ ಸ್ಥಳಗಳ ಗುಂಪೇ ನಿಖರವಾಗಿ ನಮ್ಮ ಅಂತಿಮ ಬಿಂದುಗಳಾಗಿವೆ, ಅದರ ಮೂಲಕ ನಾವು ನಮ್ಮ ವಿನಂತಿಗಳನ್ನು ಪ್ರಾಕ್ಸಿ ಮಾಡುತ್ತೇವೆ

ಅಲ್ಲದೆ, ನಾವು ಫೈಲ್ ಅನ್ನು ರಚಿಸೋಣ /etc/nginx/passwd.htpasswd;ಆದ್ದರಿಂದ nginx ಬಳಕೆದಾರರ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಏನನ್ನಾದರೂ ಹೊಂದಿದೆ.

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

nginx ಮೂಲಕ ಪ್ರಾಕ್ಸಿ ಮಾಡುವುದರೊಂದಿಗೆ ನಾವು ನಮ್ಮ ವೆಬ್‌ಗ್ರಾಮ್ ನಿದರ್ಶನವನ್ನು ಹೆಚ್ಚಿಸುತ್ತೇವೆ

nginx ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ:

sudo systemctl restart nginx

ಈಗ ವೆಬ್ಗ್ರಾಮ್ ಇಲ್ಲಿ ಮಾತ್ರ ಲಭ್ಯವಿರುತ್ತದೆ 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 <[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 ಮೂಲಕ ಪ್ರಾಕ್ಸಿ ಮಾಡಲಾಗಿದೆ.

nginx ಮೂಲಕ ಪ್ರಾಕ್ಸಿ ಮಾಡುವುದರೊಂದಿಗೆ ನಾವು ನಮ್ಮ ವೆಬ್‌ಗ್ರಾಮ್ ನಿದರ್ಶನವನ್ನು ಹೆಚ್ಚಿಸುತ್ತೇವೆ

ಈ ಟ್ಯುಟೋರಿಯಲ್ ನನ್ನನ್ನು ಹೊರತುಪಡಿಸಿ ಬೇರೆಯವರಿಗೆ ಉಪಯುಕ್ತವಾಗಲಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.

ಕೊನೆಯವರೆಗೂ ಓದಿದ ಎಲ್ಲರಿಗೂ ತುಂಬಾ ಧನ್ಯವಾದಗಳು.

ಯಾರಿಗಾದರೂ ಯಾವುದೇ ತೊಂದರೆಗಳಿದ್ದರೆ ಅಥವಾ ನಾನು ಯಾವುದೇ ತಪ್ಪುಗಳನ್ನು ಮಾಡಿದ್ದರೆ, ನಾನು ಉತ್ತರಿಸಲು ಸಂತೋಷಪಡುತ್ತೇನೆ ಮತ್ತು ಕಾಮೆಂಟ್‌ಗಳಲ್ಲಿ ಅಥವಾ PM ನಲ್ಲಿ ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತೇನೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ