WSO2 چیست؟ راهنمای جامع نصب API Manager با Docker، پیکربندی SSL و استقرار Production
مهیار طلوعی اصل ·
·
۱۹ دقیقه مطالعه
این راهنما در مهر ۱۴۰۵ (اکتبر ۲۰۲۶) و بر اساس آخرین نسخههای پایدار محصولات WSO2 نوشته شده است.
تقریباً هر سازمانی که امروز سرویس دیجیتال ارائه میدهد، دیر یا زود با این پرسش روبهرو میشود که APIهای خود را چگونه امن، قابلمدیریت و قابلاندازهگیری در اختیار اپلیکیشنها، شرکا و توسعهدهندگان قرار دهد. WSO2 یکی از شناختهشدهترین پاسخهای متنباز به این نیاز است؛ مجموعهای از محصولات برای مدیریت API، مدیریت هویت و دسترسی و یکپارچهسازی سیستمها که هم بهصورت نرمافزار قابلنصب و هم بهصورت سرویس ابری (SaaS) عرضه میشود.
در این مقاله ابتدا با شرکت WSO2 و خانوادهی محصولاتش آشنا میشویم، سپس معماری WSO2 API Manager را بررسی میکنیم و قدمبهقدم آن را با Docker و Docker Compose راه میاندازیم. پس از آن به پیکربندی فایل deployment.toml، راهاندازی SSL/TLS با گواهی معتبر، قرار دادن Nginx در جلوی سرور و نکات لازم برای یک استقرار Production میپردازیم و در پایان WSO2 را با رقبایی مثل Kong، Apigee و Keycloak مقایسه میکنیم.
بخش ۱ از ۱۲
WSO2 چیست و چه محصولاتی دارد؟
WSO2 در سال ۲۰۰۵ در سریلانکا بهدست سانجیوا ویراوارانا (Sanjiva Weerawarana) و همکارانش تأسیس شد؛ تیمی که سابقهی پررنگی در پروژههای بنیاد نرمافزار آپاچی داشت. این شرکت امروز خود را بزرگترین فروشندهی مستقل نرمافزارهای متنباز در حوزهی مدیریت API، یکپارچهسازی و مدیریت هویت معرفی میکند و بیش از ۸۰۰ کارمند در کشورهایی مانند آمریکا، انگلستان، آلمان، هند، استرالیا، برزیل، امارات و سریلانکا دارد. در سال ۲۰۲۴ صندوق سرمایهگذاری سوئدی EQT مالکیت WSO2 را به دست گرفت و ویراوارانا همچنان مدیرعامل شرکت باقی ماند.
وبسایت رسمی شرکت، wso2.com، نقطهی شروع همهچیز است: دانلود محصولات، مستندات هر محصول (مثل apim.docs.wso2.com و is.docs.wso2.com)، وبلاگ فنی، جدول پشتیبانی نسخهها (Support Matrix) و اطلاعات اشتراک تجاری. کد منبع محصولات قابلنصب روی GitHub و با مجوز Apache 2.0 منتشر میشود.
خانوادهی محصولات (وضعیت اکتبر ۲۰۲۶)
WSO2 API Manager: پلتفرم کامل مدیریت چرخهی عمر API؛ آخرین نسخهی آن 4.7.0 است که در ۲۹ آوریل ۲۰۲۶ منتشر شد و به JDK 21 یا 25 نیاز دارد. در کنار آن «API Platform Gateway» مبتنی بر Envoy (نسخهی 1.2.0 در اوت ۲۰۲۶) و WSO2 Kubernetes Gateway هم عرضه میشوند.
WSO2 Identity Server: محصول متنباز مدیریت هویت و دسترسی (IAM/CIAM) با پشتیبانی از OAuth 2.0، OpenID Connect، SAML، احراز هویت چندمرحلهای و فدراسیون هویت. آخرین نسخهی آن 7.3.0 است (۱۲ مه ۲۰۲۶).
WSO2 Integrator: خانوادهی محصولات یکپارچهسازی که Micro Integrator (اکنون با نام WSO2 Integrator: MI) شناختهشدهترین عضو آن است. نسخهی MI 4.6.0 و WSO2 Integrator 5.0.0 در ۱۹ مه ۲۰۲۶ منتشر شدند.
سرویسهای SaaS:Asgardeo (هویت بهعنوان سرویس، همکد با Identity Server)، Bijira (مدیریت API ابری که از ۲۰۲۵ جایگزین Choreo for API Management شد)، Devant (یکپارچهسازی ابری) و WSO2 Developer Platform (نام جدید Choreo؛ پلتفرم توسعهدهندگان داخلی). نسخهی متنباز این پلتفرم با نام OpenChoreo اکنون پروژهای در CNCF است.
مدل مجوز و بهروزرسانی
یکی از نکاتی که اغلب سوءتفاهم ایجاد میکند، تفاوت «نسخهی متنباز» و «توزیع تجاری» است. کد منبع و نسخههای عمومی (GA) که روی GitHub منتشر میشوند تحت Apache 2.0 هستند و استفاده از آنها، حتی در محیط عملیاتی، رایگان است. اما توزیعی که از wso2.com دانلود میشود تحت WSO2 Software License (EULA) است و بهروزرسانیهای امنیتی و رفع اشکالها از طریق ابزار WSO2 Update 2.0 فقط برای مشترکان در دسترس است. کاربران نسخهی متنباز این اصلاحات را در نسخهی عمومی بعدی دریافت میکنند. طبق سیاست فعلی، هر نسخه دستکم سه سال پشتیبانی دارد و برای «خطوط انتشار» که از مارس ۲۰۲۴ معرفی شدهاند (مثل APIM-4.x و IS-7.x)، دستکم هفت سال پشتیبانی در نظر گرفته شده است.
بخش ۲ از ۱۲
معماری WSO2 API Manager
API Manager از چند جزء منطقی تشکیل شده است که در حالت پیشفرض همه در یک فرایند جاوا (All-in-one) اجرا میشوند، اما در محیطهای بزرگ میتوان آنها را از هم جدا کرد:
Publisher: پرتال سازندگان API. طراحی API (REST، GraphQL، WebSocket، AsyncAPI و SOAP)، تعریف سیاستها، نسخهگذاری، مستندسازی، مدیریت چرخهی عمر (Created، Published، Deprecated و…) و ساخت Revision در این بخش انجام میشود.
Developer Portal: فروشگاه API برای مصرفکنندگان. توسعهدهندگان در آن APIها را جستوجو و امتحان میکنند، اپلیکیشن میسازند، مشترک (Subscribe) میشوند و کلید یا توکن دریافت میکنند.
Gateway: قلب مسیر داده. همهی درخواستهای API از Gateway عبور میکنند و احراز هویت، اعمال محدودیت نرخ، تبدیل پیام، مسیریابی و جمعآوری دادهی تحلیلی در همینجا انجام میشود. در نسخهی 4.7 علاوه بر Gateway کلاسیک (Synapse)، میتوان APIها را روی API Platform Gateway مبتنی بر Envoy هم مستقر کرد.
Key Manager: صدور و اعتبارسنجی توکنهای OAuth 2.0 و کلیدهای API. میتوان بهجای Key Manager داخلی از سرویسهای خارجی مثل WSO2 Identity Server، Keycloak، Okta یا Asgardeo استفاده کرد.
Traffic Manager: موتور تصمیمگیری محدودیت نرخ (Throttling) که رویدادهای Gateway را پردازش میکند و سیاستهایی مثل «۱۰۰ درخواست در دقیقه برای هر اپلیکیشن» را در کل خوشه اعمال میکند.
WSO2 این اجزا را در قالب چند توزیع جداگانه هم ارائه میکند: API Control Plane (شامل Publisher، Developer Portal، Admin و Key Manager)، Universal Gateway و Traffic Manager. تصاویر Docker هرکدام هم جداگانه منتشر میشوند (wso2/wso2am-acp، wso2/wso2am-universal-gw و wso2/wso2am-tm).
پورتهای مهم
پورت
کاربرد
9443
HTTPS کنسول مدیریت و پرتالها (Publisher، Developer Portal، Admin و Carbon)
9763
HTTP داخلی سرولتها (برای Health check داخلی؛ نباید عمومی شود)
8243
HTTPS ترافیک API در Gateway
8280
HTTP ترافیک API در Gateway
9099 / 8099
WebSocket (WS / WSS) در Gateway
5672
کانال پیامرسانی داخلی (رویدادهای کنترلی و محدودیت نرخ)
9611 / 9711
دریافت رویدادهای Throttling در Traffic Manager
بخش ۳ از ۱۲
کاربردهای رایج WSO2
انتشار امن APIهای سازمانی: قرار دادن سیستمهای قدیمی و جدید پشت یک Gateway واحد با احراز هویت OAuth 2.0، محدودیت نرخ و گزارشگیری.
بانکداری باز و فینتک: WSO2 «شتابدهندهی خدمات مالی» (Open Banking Accelerator) را روی API Manager و Identity Server ارائه میکند.
APIهای B2B و شرکا: Developer Portal چندمستأجری، گردشکار تأیید اشتراک و امکان کسب درآمد (Monetization).
معماری میکروسرویس: Gateway در نقش لبهی شبکه و مدیریت مرکزی سیاستها روی چند Gateway، حتی Gatewayهای دیگر مثل AWS، Azure یا Kong (Federated Gateways).
AI Gateway و MCP: نسخههای اخیر امکاناتی برای مدیریت APIهای مدلهای زبانی، Guardrailها، مسیریابی هوشمند بین مدلها و حاکمیت بر سرورهای MCP اضافه کردهاند.
ورود یکپارچه و CIAM: با Identity Server یا Asgardeo؛ و یکپارچهسازی سیستمها با Micro Integrator برای تبدیل پیام، اتصال به پایگاهداده، صفها و سرویسهای SOAP.
بخش ۴ از ۱۲
نصب سریع WSO2 API Manager با Docker
WSO2 تصاویر رسمی را روی Docker Hub با نام wso2/wso2am منتشر میکند. برای نسخهی 4.7.0 سه گونه وجود دارد: 4.7.0 (پایهی Ubuntu)، 4.7.0-alpine و 4.7.0-rocky. این تصاویر با کاربر غیرریشهی wso2carbon (شناسهی 10001) اجرا میشوند و محصول در مسیر /home/wso2carbon/wso2am-4.7.0 نصب شده است. برای آزمایش سریع کافی است:
docker run -d --name apim \
-p 9443:9443 -p 8243:8243 -p 8280:8280 \
wso2/wso2am:4.7.0
# follow the log until the server reports it has started
docker logs -f apim
راهاندازی اولیه بسته به سختافزار یک تا چند دقیقه طول میکشد. سپس این نشانیها در دسترساند (نام کاربری و رمز پیشفرض admin / admin است و مرورگر بهخاطر گواهی خودامضا هشدار میدهد):
https://localhost:8243/ — نقطهی فراخوانی APIها از طریق Gateway
این حالت فقط برای آشنایی و آزمایش مناسب است: دادهها در پایگاهدادهی جاسازیشدهی H2 و داخل خود کانتینر ذخیره میشوند و با حذف کانتینر از بین میروند. همچنین حافظهی پیشفرض JVM برابر -Xms256m -Xmx1024m است که برای بار واقعی کافی نیست.
بخش ۵ از ۱۲
استقرار با Docker Compose و پایگاهدادهی MySQL
برای یک محیط پایدار، پایگاهداده را بیرون از API Manager نگه میداریم. API Manager دو پایگاهدادهی اصلی دارد: apim_db (دادههای APIها، اپلیکیشنها، اشتراکها و توکنها) و shared_db (کاربران، نقشها و رجیستری). ساختار پوشهی پروژه به این شکل است:
تصویر رسمی درایور JDBC مربوط به MySQL را ندارد؛ بنابراین یک Dockerfile کوچک مینویسیم که درایور را به پوشهی repository/components/lib اضافه کند (طبق مستندات، نسخهی Connector/J 8.4 با MySQL 8.4 سازگار است):
API Manager به collation حساس به حروف بزرگ و کوچک نیاز دارد؛ collation پیشفرض MySQL 8 یعنی utf8mb4_0900_ai_ci نباید استفاده شود. اسکریپت اول، پایگاهدادهها و کاربر را میسازد:
-- mysql-init/01-databases.sql
CREATE DATABASE apim_db CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE DATABASE shared_db CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'apimuser'@'%' IDENTIFIED BY 'Str0ng-DB-Passw0rd';
GRANT ALL PRIVILEGES ON apim_db.* TO 'apimuser'@'%';
GRANT ALL PRIVILEGES ON shared_db.* TO 'apimuser'@'%';
FLUSH PRIVILEGES;
اسکریپتهای ساخت جدولها داخل خود توزیع وجود دارند (dbscripts/mysql.sql برای shared_db و dbscripts/apimgt/mysql.sql برای apim_db). آنها را مستقیم از تصویر استخراج میکنیم تا دقیقاً با نسخهی نصبشده همخوان باشند:
حالا فایل Compose را مینویسیم. نکتهی مهم این است که تصویر رسمی هنگام شروع، محتوای پوشهی /home/wso2carbon/wso2-config-volume را روی پوشهی نصب محصول کپی میکند؛ پس کافی است deployment.toml و فایلهای امنیتی را با همان ساختار پوشهها در این مسیر Mount کنیم:
# .env (keep this file out of Git)
MYSQL_ROOT_PASSWORD=Ch4nge-Me-Root
فایلهای داخل wso2-config باید برای کاربر کانتینر (UID 10001) قابلخواندن باشند (مثلاً chmod -R o+rX wso2-config). با docker compose up -d --build همهچیز بالا میآید؛ در اولین اجرا MySQL اسکریپتها را اجرا میکند و API Manager فقط پس از سالم شدن پایگاهداده شروع میشود. متغیر JVM_MEM_OPTS را اسکریپت راهانداز api-manager.sh میخواند و جایگزین مقدار پیشفرض حافظه میکند.
بخش ۶ از ۱۲
تنظیمات کلیدی deployment.toml
از نسخهی 3 به بعد، تقریباً همهی تنظیمات WSO2 در یک فایل TOML متمرکز شدهاند و سرور هنگام شروع، فایلهای XML داخلی را از روی آن میسازد. یک نمونهی حداقلی برای سناریوی بالا:
[server] hostname: نام دامنهای که کاربران با آن به پرتالها میرسند. اگر این مقدار localhost بماند، Redirectهای ورود (OIDC) کاربران را به localhost میفرستند.
[database.*]: چون این مقادیر داخل فایلهای XML قرار میگیرند، کاراکتر & در URL باید بهصورت & نوشته شود. در Production بهجای useSSL=false اتصال TLS به پایگاهداده را فعال کنید و پایگاهداده را روی منطقهی زمانی UTC نگه دارید.
[user_store]: نوع پیشفرض database_unique_id کاربران را در shared_db نگه میدارد؛ برای اتصال به LDAP یا Active Directory میتوان نوع آن را به read_only_ldap_unique_id یا active_directory_unique_id تغییر داد و مشخصات اتصال را افزود.
[[apim.gateway.environment]]: نشانیهایی که در Developer Portal بهعنوان Endpoint نمایش داده میشوند. وقتی Gateway پشت Nginx است، باید نشانی عمومی را اینجا بنویسید.
[encryption] key: از نسخهی 4.7 رمزنگاری پیشفرض دادههای حساس از RSA به رمزنگاری متقارن AES-GCM تغییر کرده است. یک کلید ۶۴ کاراکتری هگز (مثلاً با openssl rand -hex 32) بسازید، از آن نسخهی پشتیبان امن بگیرید و در همهی گرههای خوشه یکسان نگه دارید؛ گمشدن این کلید یعنی ازدسترفتن دادههای رمزشده.
حافظهی JVM: در Docker با متغیر JVM_MEM_OPTS و در نصب معمولی با ویرایش همان متغیر در bin/api-manager.sh تنظیم میشود. سقف Heap را حدود نیمی تا دو سوم حافظهی کانتینر در نظر بگیرید تا برای Metaspace و بافرهای شبکه جا بماند.
بخش [secrets] با ابزار Cipher Tool رمز میشود. مقدارهای داخل کروشه، رمزهای خام هستند و پس از اجرای دستور زیر در پوشهی محصول با متن رمزشده جایگزین میشوند و در بقیهی فایل با $secret{...} به آنها ارجاع میدهیم:
cd /home/wso2carbon/wso2am-4.7.0
./bin/ciphertool.sh -Dconfigure
در Docker، این دستور را یک بار روی نسخهای از توزیع اجرا کنید و فایل TOML حاصل را در wso2-config قرار دهید؛ یا رمزها را از یک سامانهی مدیریت اسرار (مثل Kubernetes Secret یا Vault) تأمین کنید. توجه کنید که [super_admin] فقط در اولین راهاندازی، حساب مدیر را در پایگاهداده میسازد؛ تغییر رمز بعدی باید از کنسول مدیریت (/carbon) انجام شود.
بخش ۷ از ۱۲
پیکربندی SSL/TLS
API Manager بهصورت پیشفرض با keystore خودامضای wso2carbon.jks (در مسیر repository/resources/security، با رمز wso2carbon) عرضه میشود. این کلید خصوصی در همهی نصبهای دنیا یکسان است؛ بنابراین در هیچ محیط واقعی نباید بدون تغییر باقی بماند. دو راه اصلی داریم: خاتمهدادن TLS روی Nginx (پیشنهادی) یا نصب مستقیم گواهی معتبر روی خود WSO2. در بسیاری از محیطها هر دو را با هم انجام میدهند.
ساخت keystore از گواهی Let's Encrypt
فرض کنید با certbot گواهی دامنههای apim.example.com و gw.example.com را گرفتهاید (هر دو در SAN یک گواهی). ابتدا کلید و زنجیرهی گواهی را به PKCS12 و سپس به JKS تبدیل میکنیم. WSO2 الزام میکند رمز keystore و رمز کلید خصوصی یکسان باشند:
سپس گواهی عمومی را در truststore پیشفرض (client-truststore.jks با رمز پیشفرض wso2carbon) وارد میکنیم تا ارتباط داخلی اجزا با نام دامنهی جدید معتبر شناخته شود:
هر دو فایل را در wso2-config/repository/resources/security/ قرار دهید (نسخهای کامل از client-truststore.jks اصلی که گواهی جدید به آن اضافه شده) و در TOML معرفی کنید:
[keystore.tls]
file_name = "apim-tls.jks"
type = "JKS"
password = "Str0ng-Keystore-Pass"
alias = "apimcert"
key_password = "Str0ng-Keystore-Pass"
[truststore]
file_name = "client-truststore.jks"
type = "JKS"
password = "wso2carbon"
بخش [keystore.tls] فقط گواهی ارتباطات HTTPS را عوض میکند. keystore اصلی ([keystore.primary]) برای امضای توکنها و کارهای داخلی استفاده میشود و تغییر آن روی سیستمی که داده دارد باید با برنامهریزی انجام شود. گواهی Let's Encrypt هر ۹۰ روز تمدید میشود؛ تبدیل بالا را در یک اسکریپت پس از تمدید (deploy hook) خودکار کنید. به همین دلیل سادهتر است که گواهی عمومی فقط روی Nginx باشد.
Nginx بهعنوان Reverse Proxy با خاتمهی TLS
در این الگو کاربران فقط با پورت 443 کار میکنند و Nginx درخواستها را به پورتهای 9443 و 8243 کانتینر میفرستد. پیکربندی زیر برگرفته از الگوی مستندات WSO2 است:
دستور http2 on; در Nginx 1.25.1 و بالاتر پشتیبانی میشود؛ در نسخههای قدیمیتر بهجای آن listen 443 ssl http2; بنویسید. پس از این کار، در TOML همانطور که دیدیم hostname را برابر دامنهی عمومی و proxyPort را 443 بگذارید. اگر پرتالها با چند نام دامنه در دسترس هستند، گزینهی customUrl را در فایلهای settings.json مربوط به Publisher، Developer Portal و Admin فعال کنید تا Callback ورود بر اساس سرآیند X-Forwarded-Host ساخته شود. در این حالت پورتهای 9443 و 8243 را فقط روی شبکهی داخلی یا 127.0.0.1 باز نگه دارید.
بخش ۸ از ۱۲
استقرار در محیط Production
پایگاهداده و پایداری دادهها
H2 فقط برای آزمایش است. در Production از MySQL، PostgreSQL، Oracle یا SQL Server پشتیبانیشده استفاده کنید، خود پایگاهداده را هم بهصورت HA (Replication یا سرویس مدیریتشدهی ابری) راهاندازی کنید و تنظیمات Pool اتصال را با بار واقعی هماهنگ کنید. مستندات WSO2 برای خوشههای MySQL پیکربندی Failover را به Load Balanced ترجیح میدهد.
خوشهبندی و جداسازی اجزا
Active-Active با دو گره All-in-one: سادهترین الگوی HA. هر دو گره به پایگاهدادههای مشترک وصلاند و پشت یک Load Balancer قرار میگیرند. چون کنسول مدیریت به Session وابسته است، Load Balancer باید Sticky Session (مثلاً ip_hash) داشته باشد.
استقرار توزیعشده: Control Plane، Gateway و Traffic Manager روی گرههای جدا. Gatewayها مستقل از پرتالها مقیاسپذیر میشوند و میتوان Gateway جداگانهای برای ترافیک داخلی و خارجی (یا Production و Sandbox) داشت. در نسخههای 4.x، Gatewayها مصنوعات API را از Control Plane همگامسازی میکنند و نیازی به فایلسیستم مشترک برای APIها نیست.
Kubernetes و Helm: مخزن رسمی wso2/helm-apim چارتهای All-in-one و توزیعشده (Control Plane، Gateway و Traffic Manager) را برای نسخهی 4.7.0 نگهداری میکند. همچنین WSO2 Kubernetes Gateway و API Platform Gateway برای معماریهای Kubernetes-native در دسترساند.
سختسازی امنیتی (Hardening)
رمز admin را پیش از اولین راهاندازی عوض کنید، حسابهای جداگانه با نقشهای محدود (مثلاً فقط Publisher یا فقط Subscriber) بسازید و از حساب super admin برای کار روزمره استفاده نکنید.
keystore و truststore پیشفرض را جایگزین کنید و همهی رمزهای پیشفرض (wso2carbon) را تغییر دهید.
همهی رمزهای موجود در TOML را با Secure Vault و Cipher Tool رمز کنید.
کنسول /carbon و پرتالهای Publisher و Admin را فقط از شبکهی داخلی یا VPN در دسترس بگذارید و فقط Gateway و در صورت نیاز Developer Portal را عمومی کنید.
پورتهای داخلی (9763، 5672، 9611، 9711) را با فایروال ببندید.
از سیاست پیشفرض «منع دسترسی» در 4.7 برای مسیرهای Control Plane استفاده کنید و فقط مسیرهای لازم را با [[resource.access_control]] باز کنید.
بهروزرسانیهای امنیتی را دنبال کنید: مشترکان با WSO2 Update 2.0 و کاربران نسخهی متنباز با ارتقا به آخرین نسخهی عمومی؛ اطلاعیههای امنیتی در security.docs.wso2.com منتشر میشوند.
لاگ، پایش و پشتیبانگیری
لاگهای اصلی در repository/logs قرار دارند: wso2carbon.log (لاگ سرور)، http_access_*.log (دسترسیها) و audit.log (اقدامات مدیریتی). پیکربندی لاگ در repository/conf/log4j2.properties است. در محیط کانتینری، لاگها را به stdout یا یک جمعکنندهی مرکزی (ELK، Loki و…) بفرستید. برای پایش، JMX و متریکهای JVM، سلامت Endpoint /services/Version و زمان پاسخ Gateway را زیر نظر بگیرید. دادههای تحلیلی API را هم میتوان به سرویسهایی مثل Moesif یا پشتهی ELK فرستاد. برنامهی پشتیبانگیری باید شامل پایگاهدادهها، deployment.toml، keystoreها و کلید رمزنگاری [encryption] باشد؛ و بازیابی آن را دورهای در محیط تست تمرین کنید.
بخش ۹ از ۱۲
مقایسهی WSO2 با محصولات مشابه
محصول
مدل ارائه و مجوز
نقاط قوت
ملاحظات
WSO2 API Manager
متنباز (Apache 2.0) + اشتراک تجاری؛ نسخهی SaaS با نام Bijira
چرخهی عمر کامل API، Developer Portal قدرتمند، Key Manager داخلی، Gateway فدرال و امکانات AI/MCP
مبتنی بر جاوا و نسبتاً سنگین؛ نیاز به دانش پیکربندی
Kong Gateway
هستهی متنباز + نسخهی Enterprise و پلتفرم ابری Konnect
Gateway سبک و سریع روی NGINX/OpenResty، اکوسیستم بزرگ پلاگین
بسیاری از امکانات مدیریتی و پرتال در نسخههای تجاری است
Google Apigee
تجاری؛ سرویس ابری Google Cloud (و مدل Hybrid)
تحلیل پیشرفته، کسب درآمد از API و امکانات سازمانی کامل
هزینهی بالا و وابستگی به Google Cloud
Tyk
Gateway متنباز + نسخههای تجاری و ابری
نوشتهشده با Go، سبک و با پشتیبانی GraphQL
داشبورد و پرتال کامل در نسخهی تجاری
Gravitee
نسخهی متنباز + نسخهی Enterprise
پشتیبانی خوب از APIهای رویدادمحور (Kafka، MQTT و…)
جامعهی کاربری کوچکتر
Azure API Management
سرویس مدیریتشدهی Microsoft Azure
یکپارچگی عمیق با Azure، امکان Gateway خودمیزبان
هزینه و وابستگی به Azure
AWS API Gateway
سرویس کاملاً مدیریتشده و Serverless در AWS
بدون نیاز به نگهداری سرور، یکپارچگی با Lambda و IAM
پرتال توسعهدهندگان و قابلیتهای چندابری محدود
در حوزهی مدیریت هویت هم مقایسهی رایج، WSO2 Identity Server با Keycloak است:
معیار
WSO2 Identity Server
Keycloak
مجوز و پشتیبان
Apache 2.0؛ پشتیبانی تجاری WSO2؛ همکد با Asgardeo
CIAM و B2B، گردشکارهای احراز هویت قابلبرنامهنویسی، سازمانهای چندسطحی
SSO سازمانی و یکپارچگی ساده با اپلیکیشنها
یکپارچگی با API Manager
بومی؛ بهعنوان Key Manager رسمی
از طریق Connector Key Manager
پیچیدگی
امکانات بیشتر، پیکربندی مفصلتر
سبکتر و با جامعهی کاربری بسیار بزرگ
بهطور خلاصه، اگر یک پلتفرم کامل و خودمیزبان با Developer Portal، Key Manager و سیاستهای سازمانی میخواهید و نمیخواهید به یک ارائهدهندهی ابری وابسته شوید، WSO2 گزینهی بسیار جدی است. اگر فقط یک Gateway سبک لازم دارید، Kong یا Tyk سادهترند و اگر کاملاً روی یک ابر خاص هستید، سرویس مدیریتشدهی همان ابر هزینهی نگهداری کمتری دارد.
بخش ۱۰ از ۱۲
رفع اشکالهای رایج
کانتینر پس از چند دقیقه متوقف میشود یا خطای OutOfMemoryError میدهد:JVM_MEM_OPTS و محدودیت حافظهی کانتینر را هماهنگ کنید و با docker logs و docker inspect (وضعیت OOMKilled) علت را بررسی کنید.
Communications link failure یا Access denied هنگام اتصال به MySQL: مطمئن شوید API Manager پس از سالم شدن MySQL شروع میشود (healthcheck)، درایور در components/lib قرار دارد، & در URL رعایت شده و کاربر اجازهی اتصال از '%' را دارد.
خطای PKIX path building failed: گواهی سرور مقصد در client-truststore.jks نیست؛ آن را با keytool -import اضافه و سرور را راهاندازی مجدد کنید.
انتقال به localhost پس از ورود یا خطای «Registered callback does not match»: مقدار hostname و proxyPort را بررسی و در صورت نیاز customUrl را فعال کنید.
خطای 403 روی مسیرهای سفارشی پس از ارتقا به 4.7: نتیجهی سیاست جدید منع پیشفرض است؛ مسیر را با [[resource.access_control]] مجاز کنید.
عدم اعتبار توکنها یا خطاهای زمانی: ساعت همهی گرهها را با NTP همگام کنید و پایگاهداده را روی UTC نگه دارید.
دادههای تکراری یا رفتار عجیب در جستوجو و کلیدها: collation پایگاهداده را بررسی کنید؛ باید حساس به حروف (مثل utf8mb4_bin) باشد.
مشکل در پورت 9443: اگر پورت در میزبان اشغال است (مثلاً در Rancher)، با [server] offset همهی پورتها را جابهجا کنید؛ با offset=1 پورتها 9444 و 8244 میشوند.
بخش ۱۱ از ۱۲
جمعبندی
WSO2 یکی از معدود پلتفرمهایی است که مدیریت API، هویت و یکپارچهسازی را با کد متنباز و امکان استقرار کاملاً خودمیزبان کنار هم ارائه میکند. WSO2 API Manager 4.7 با Gateway جدید مبتنی بر Envoy، رمزنگاری متقارن پیشفرض، کلیدهای API وابسته به API و امکانات حاکمیت بر MCP نشان میدهد که محصول بهسمت معماریهای Cloud-native و هوش مصنوعی حرکت میکند. راهاندازی آزمایشی با Docker چند دقیقه طول میکشد، اما رسیدن به یک محیط Production قابلاعتماد به پایگاهدادهی خارجی، گواهی معتبر، Reverse Proxy، رمزنگاری اسرار، پایش و پشتیبانگیری منظم نیاز دارد. اگر این گامها را با دقت بردارید، یک پلتفرم API سازمانی و مستقل از ارائهدهندهی ابری در اختیار خواهید داشت.
راهنمای جامع و کاربردی مدیریت secret ها با HashiCorp Vault: تاریخچه، تغییر مجوز به BSL، OpenBao و خرید HashiCorp توسط IBM، مفاهیم Seal/Unseal و Raft، توکن و Policy، AppRole و Kubernetes، رازهای پویا، PKI و Transit، راهاندازی با Docker Compose و TLS، اتصال Spring Boot و چکلیست Production.
راهنمای جامع و کاربردی پراکسی سرور به زبان ساده: تفاوت پراکسی فوروارد، معکوس و شفاف، انواع HTTP و SOCKS، الگوریتمهای توزیع بار و آموزش کامل Nginx شامل نصب، ساختار پیکربندی، Reverse Proxy، SSL با Let's Encrypt، WebSocket، کش، محدودیت نرخ، هدرهای امنیتی و عیبیابی خطاهای 502 و 504.
آموزش شبکه کردن CALL OF DUTY 4:MODERN WARFARE 1 برای شبکه کردن این بازی شما نیاز به یک سری پچ ها و تنظیمات دارید که باید مرحله به مرحله انجام بشه مرحله اول مثل همیشه نصب یک نسخه…
نظرها هنوز نظری ثبت نشده
برای ثبت نظر، صفحه را در مرورگر باز کنید.