Mustahil untuk menghasilkan iklan terbaik untuk seorang pembawa pesan hebat - "Durov yang tangguh memegang pertahanan dan membela privasi kliennya, seperti untuk hidupnya." Namun esensi dari posting ini bukan pada komponen pemasaran pemblokiran Telegram di Rusia. Jika bot Telegram Anda telah berhenti bekerja dan Anda harus segera memulihkan pekerjaan ini, selamat datang di kucing.
Tadi malam kami mengalami masalah yang diperkirakan akan bertabrakan. Server API salah satu klien kami berlokasi di Heroku. Kemarin, klien yang tidak puas menulis kepada saya (di Telegram, tentu saja) bahwa informasi di situs muncul secara acak, maka tidak ada. Situs itu sendiri (aplikasi di NodeJS) telah ditransfer ke server Moskow terlebih dahulu untuk mengurangi ping.
Setelah setengah jam mempelajari masalahnya, sebuah kesimpulan sederhana tercapai: Roskomnadzor memblokir sebagian alamat heroku. Rotasi server heroku terjadi pada tingkat DNS dan DNS terkadang memberikan IP yang berfungsi, terkadang tidak. Omong-omong, untuk mengetahui penyebab masalah itu cukup sulit - ketika kami uji dengan pengembang - tidak ada masalah. Ketika klien menguji, mereka. Pikiran sudah muncul untuk menjawab frasa hebat klien dari pengembang "semuanya bekerja di komputer saya".
Solusinya cukup sederhana - kami mentransfer server API aplikasi ke server klien St. Petersburg dan di sana diam-diam digunakan. Semuanya bekerja dengan sempurna, kecuali, tentu saja, integrasi dengan Telegram. Karena mengabaikan integrasi ini tidak mungkin, karena Tidak ada alternatif yang layak, kami mulai mencari solusi untuk masalah ini. Semuanya sederhana dengan klien Telegram asli - ini sudah memiliki interaksi built-in dengan server proxy dan pengaturannya membutuhkan beberapa detik. Dengan Bot API, segalanya menjadi sedikit berbeda. Aplikasi berinteraksi dengan https://api.telegram.org/ untuk setiap tindakan bot Telegram, dan alamat ini, tentu saja, diblokir oleh ILV.
Sebagai solusi cepat untuk masalah ini, kami segera menyambungkan server API klien ke jaringan OpenVPN kami untuk mem-bypass kunci ini. Keputusan itu langsung ditolak, karena kecepatan respons meninggalkan banyak hal yang diinginkan. Google dan Yandex tidak dapat berbagi informasi berguna dengan saya tentang penyelesaian masalah ini.
Akibatnya, muncul pemikiran sederhana dan jelas - untuk meningkatkan server proxy sendiri untuk terhubung ke telegram. Tentu saja, kami meningkatkan server di luar Federasi Rusia sehingga proksi berfungsi
Di bawah ini adalah konfigurasi nginx yang sekarang melakukan tugasnya dengan sempurna
Konfigurasi nginxserver {
dengarkan 80;
server_name my-telegram-proxy.server;
lokasi / {
proxy_set_header X-Forwarded-Host $ host;
proxy_set_header X-Forwarded-Server $ host;
proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for;
proxy_pass https://api.telegram.org/ ;
client_max_body_size 100M;
}
}
Lebih lanjut dalam aplikasi, saya mengganti url BOT API untuk berinteraksi dengan telegram - bukan
https://api.telegram.org/bot
menulis
http: //my-telegram-proxy.server/bot
dan integrasi dengan Bot Api berhasil diperoleh
Untuk kenyamanan yang lebih besar, saya membuat wadah buruh pelabuhan dengan petunjuk terperinci untuk penggunaannya. Ini akan memungkinkan Anda untuk meningkatkan proxy bot telegram Anda dengan satu perintah dalam hitungan detik
https://hub.docker.com/r/zvinger/docker-proxy-rkn/builds/
Contoh perintah:
docker run -d -p 8012:80 zvinger/docker-proxy-rkn
dan tentukan http: // alamat server: 8012 / dalam konfigurasi aplikasi. Anda dapat memilih port apa saja saat memasukkan perintah