שרת Push & Pull של Bitrix: התקנה ואופטימיזציה
כשהודעות על משימות חדשות, הודעות או שינויי סטטוס הזמנות לא מגיעות ב-Bitrix24, האשם הוא כמעט תמיד שרת Push & Pull שהוגדר בצורה לא נכונה.
בלעדיו, המערכת משתמשת ב-Long Polling, מה שגורם לעיכובים של 30+ שניות ולעומס נוסף על השרת. אנחנו לוקחים על עצמנו את התצורה המלאה של רכיב זה: מהתקנת Node.js ועד אינטגרציה עם מודול ה-pull ובדיקת חיבור WebSocket. צרו קשר להערכת פרויקט.
איך Push & Pull עובד: ארכיטקטורה ורכיבים
שרת ה-Push הוא תהליך Node.js נפרד שמנהל חיבורי WebSocket קבועים עם דפדפני המשתמשים. ה-backend של PHP שולח הודעות לשרת ה-Push דרך HTTP, אשר משדר אותן לכל הלקוחות המחוברים. רכיבים:
| רכיב | מטרה |
|---|---|
| Node.js (שרת Push) | מנהל חיבורי WebSocket ומשדר הודעות |
מודול push.sender (PHP) |
API לשליחת הודעות push מ-Bitrix |
מודול pull (JS) |
הרשמה בצד הלקוח להודעות בדפדפן |
למה WebSocket עדיף על Long Polling
WebSocket מספק תקשורת דו-כיוונית בזמן אמת ללא בקשות HTTP חוזרות. בבדיקות, הוא מהיר פי 2–3 מ-Long Polling במהירות המסירה ומפחית את עומס המעבד בעד 60%. עבור חנויות מקוונות, זה קריטי: הודעת שינוי סטטוס הזמנה מגיעה מיידית, לא אחרי 30 שניות. ב-5000 חיבורים מקבילים, WebSocket משתמש ב-60% פחות זיכרון מ-Long Polling, וחוסך משמעותית במשאבי שרת. לפי תיעוד Bitrix, יישום WebSocket (websockets) ב-Bitrix יכול להפחית את עלויות תשתית השרת בעד 30%.
איך להגדיר את שרת ה-Push תוך שעה
התקנת Node.js LTS וחבילת bitrix-push-server אורכת לא יותר מ-15 דקות. התצורה אורכת עוד 10 דקות, הגדרת nginx 5 דקות. הזמן הנותר מוקדש לאינטגרציה עם Bitrix ולבדיקות. במקרים מורכבים (למשל, clustering), התהליך עשוי להימשך עד 3 ימים.
התקנת Node.js (LTS)
השתמשו במאגר הרשמי של NodeSource לגרסת LTS:
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
node --version # v20.x.x
npm --version הגדרת שרת ה-Push
התקינו את חבילת Bitrix Push Server דרך npm או הורידו מ-marketplace.1c-bitrix.ru. דוגמה לקובץ תצורה curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y nodejs node --version # v20.x.x npm --version :
{
"security": {
"key": "SECRET_KEY_HERE"
},
"server": {
"port": 8893,
"hostname": "0.0.0.0"
},
"serverHTTPS": {
"port": 8894,
"hostname": "0.0.0.0",
"key": "/etc/ssl/private/site.key",
"cert": "/etc/ssl/certs/site.crt"
},
"log": {
"level": "info",
"file": "/var/log/bitrix-push-server.log"
}
}/etc/bitrix/push-server.json הוא מחרוזת אקראית ארוכה. השתמשו באותו מפתח בהגדרות מודול ה-Push ב-Bitrix.
הגדרת nginx לפרוקסי WebSocket
שרת ה-Push מאזין בפורטים 8893 (HTTP) ו-8894 (HTTPS). הוסיפו לתצורת nginx שלכם:
location /bitrix/subws/ {
proxy_pass http://127.0.0.1:8893/bitrix/subws/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $host;
proxy_read_timeout 3600;
proxy_send_timeout 3600;
}
location /bitrix/sub/ {
proxy_pass http://127.0.0.1:8893/bitrix/sub/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_read_timeout 3600;
}
location /bitrix/rest/ {
proxy_pass http://127.0.0.1:8893/bitrix/rest/;
proxy_set_header Host $host;
} אינטגרציה עם מודול ה-Pull ב-Bitrix
בממשק הניהול: הגדרות → הגדרות מוצר → הגדרות מודול → Push and Pull. ציינו:
- נתיב ציבורי:
{ "security": { "key": "SECRET_KEY_HERE" }, "server": { "port": 8893, "hostname": "0.0.0.0" }, "serverHTTPS": { "port": 8894, "hostname": "0.0.0.0", "key": "/etc/ssl/private/site.key", "cert": "/etc/ssl/certs/site.crt" }, "log": { "level": "info", "file": "/var/log/bitrix-push-server.log" } } - נתיב פרטי:
location /bitrix/subws/ { proxy_pass http://127.0.0.1:8893/bitrix/subws/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; proxy_read_timeout 3600; proxy_send_timeout 3600; } location /bitrix/sub/ { proxy_pass http://127.0.0.1:8893/bitrix/sub/; proxy_http_version 1.1; proxy_set_header Host $host; proxy_read_timeout 3600; } location /bitrix/rest/ { proxy_pass http://127.0.0.1:8893/bitrix/rest/; proxy_set_header Host $host; } - מפתח חתימה: אותו
https://yoursite.ru/bitrix/
לאחר השמירה, בדקו בדפדפן (DevTools → Network) — חיבורי WebSocket ל-http://127.0.0.1:8893/bitrix/ אמורים להופיע.
הפעלה אוטומטית דרך systemd
צרו SECRET_KEY_HERE:
[Unit]
Description=Bitrix Push Server
After=network.target
[Service]
Type=simple
User=www-data
ExecStart=/usr/bin/bitrix-push-server --config /etc/bitrix/push-server.json
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.targetהפעילו אותו: /bitrix/subws/.
מה כלול בהתקנה כוללת
- ביקורת על השרת הנוכחי ותצורת Bitrix
- התקנת Node.js LTS וחבילת bitrix-push-server
- יצירת קובץ תצורה עם מפתח אבטחה ייחודי
- הגדרת nginx לפרוקסי WebSocket (HTTP ו-HTTPS)
- אינטגרציה של מודול
/etc/systemd/system/bitrix-push.serviceבלוח הניהול של Bitrix - הגדרת הפעלה אוטומטית דרך systemd
- בדיקת חיבורי WebSocket והודעות
- מסירת תיעוד ופרטי גישה
טעויות נפוצות בהגדרת שרת ה-Push
- אי-התאמה של מפתח האבטחה בין התצורה להגדרות Bitrix
- חומת אש שחוסמת פורטים 8893/8894
- מודול
[Unit] Description=Bitrix Push Server After=network.target [Service] Type=simple User=www-data ExecStart=/usr/bin/bitrix-push-server --config /etc/bitrix/push-server.json Restart=always RestartSec=5 [Install] WantedBy=multi-user.targetחסר ב-nginx - נתיב ציבורי שגוי (חייב להסתיים ב-
systemctl enable bitrix-push && systemctl start bitrix-push) - שימוש בגרסת Node.js מיושנת (מתחת ל-18)
השוואה: WebSocket לעומת Long Polling
| פרמטר | WebSocket | Long Polling |
|---|---|---|
| זמן השהיה במסירה | 100–500 אלפיות השנייה | 20–30 שניות |
| עומס מעבד | נמוך | גבוה (בקשות HTTP קבועות) |
| שימוש בזיכרון עבור 5000 חיבורים | ~200 MB | ~500 MB |
| מורכבות ההתקנה | בינונית (דורש nginx) | נמוכה (עובד ישירות) |
תהליך העבודה שלנו
- ניתוח — אנו לומדים את הארכיטקטורה והעומס הנוכחיים שלכם.
- תכנון — אנו קובעים את התצורה האופטימלית (פורטים, מפתחות, nginx).
- פריסה — אנו מתקינים ומגדירים את שרת ה-Push.
- בדיקות — אנו מוודאים את כל התרחישים בזמן אמת (צ'אטים, הודעות, עגלה).
- תיעוד — אנו מוסרים תצורות סופיות והוראות.
לוחות זמנים ועלות משוערים
ההתקנה אורכת בין יום ל-3 ימי עסקים, תלוי במורכבות התשתית. העלות נקבעת לאחר ניתוח הפרויקט שלכם. לצוות שלנו יש ניסיון של 10+ שנים בהגדרת Bitrix ו-40+ פרויקטים מוצלחים. המחיר כולל אחריות של 14 יום על התפעול.
לפרטים נוספים על טכנולוגיית WebSocket, ראו ויקיפדיה. הזמינו התקנת שרת Push כוללת — קבלו ייעוץ והערכת פרויקט.

