رضا کرامتی
رضا کرامتی
خواندن ۲ دقیقه·۶ سال پیش

چه طور تحریم onesignal رو دور بزنیم؟

وان‌سیگنال، سرویس ارسال پوش
وان‌سیگنال، سرویس ارسال پوش

سلام. onesignal یکی از بهترین سرویس‌های پوش‌نوتیفیکیشن هستش که چند وقتیه ایران رو تحریم کرده. ما کلی دنبال جایگزین مناسب براش گشتیم و موردی با این کیفیت و رایگان توی مشابه‌های داخلی و خارجی پیدا نکردیم. برا همین آستین‌ها رو بالا زدیم و تحریم‌ها رو به فرصت تبدیل کردیم :))
دقت کنید که این مطلب کاملا فنیه و اگه خودتون آدم فنی‌ نیستید، این مطلب رو در اختیار تیم فنی‌تون قرار بدید.

تنها چیزی که شما برای این کار نیاز دارید یه سرور خارجیه. تو این آموزش فقط دور زدن تحریم برای وب‌پوش رو آموزش می‌دم. برای اپ هم مشابه همین کار رو میشه کرد ولی من هنوز نکردم. اگه کسی کرد می‌تونه به اشتراک بذاره.

خب بریم سراغ آموزش. فرض کنیم که دومین mydomain.com مال ماست. DNSهای onesignal.mydomain.com و img.onesignal.mydomain.com و cdn.onesignal.mydomain.com رو ست می‌کنیم روی آی‌پی سرور خارجی‌ای که در اختیار داریم.

روی سرور اوبونتو نصب کردیم و nginx هم روش نصبه. یک فایل به اسم onesignal توی فولدر زیر ایجاد می‌کنیم

/etc/nginx/sites-available

و محتویات زیر رو توش مینویسیم. (توی تموم کدهای زیر mydomain.com رو با دومین خودتون جایگزین کنید)

server { listen 80; server_name onesignal.mydomain.com; location / { proxy_cookie_domain '.onesignal.com' '.onesignal.mydomain.com'; proxy_set_header Accept-Encoding ''; sub_filter_types application/javascript application/json text/xml text/css text/javascript; sub_filter 'onesignal.com' 'onesignal.mydomain.com'; sub_filter_once off; proxy_pass https://onesignal.com; } } server { listen 80; server_name img.onesignal.mydomain.com; location / { resolver 8.8.8.8 ipv6=off; proxy_pass https://img.onesignal.com; } } server { listen 80; server_name cdn.onesignal.mydomain.com; location / { proxy_cookie_domain '.onesignal.com' '.onesignal.mydomain.com'; proxy_set_header Accept-Encoding ''; sub_filter_types application/javascript application/json text/xml text/css text/javascript; sub_filter 'onesignal.com' 'onesignal.mydomain.com'; sub_filter_once off; proxy_pass https://cdn.onesignal.com; } }

بعد دستور پایین رو اجرا می‌کنیم

sudo ln -s /etc/nginx/sites-available/onesignal /etc/nginx/sites-enabled/onesignal sudo service nginx reload


حالا برای اینکه HTTPSش رو هم اوکی بکنیم، از Let's Encrypt استفاده می‌کنیم که یک سرویس SSL رایگان هستش.

دستورهای زیر رو اجرا می‌کنیم

sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install python-certbot-nginx

حالا برای جنریت‌کردن گواهینامه‌ی SSL دستورهای زیر رو اجرا می‌کنیم

sudo certbot --nginx -d onesignal.mydomain.com sudo certbot --nginx -d cdn.onesignal.mydomain.com sudo certbot --nginx -d img.onesignal.mydomain.com

اگه اینجا خطایی دیدید DNSهاتون رو مجدد چک کنید

خب حالا فقط می‌مونه یک کار

برای فعال‌سازی وان‌سیگنال، دو تا فایل با نام‌های OneSignalSDKWorker.js و OneSignalSDKUpdaterWorker.js رو روی سایتمون آپلود کرده بودیم. محتویات فایل‌ها به این صورت هست

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');

که باید به این تغییر بکنه:

importScripts('https://cdn.onesignal.mydomain.com/sdks/OneSignalSDKWorker.js');

خب تبریک می‌گم. الان وان‌سیگنال شما تحریم رو دور می‌زنه و مثل ساعت کار می‌کنه.


وان‌سیگنالubuntunginxپوش
شاید از این پست‌ها خوشتان بیاید