VPS पर Swift एप्लिकेशन का डिप्लॉयमेंट: उन्नत उपयोगकर्ताओं के लिए चरण-दर-चरण गाइड
\nआपने Vapor फ्रेमवर्क का उपयोग करके Swift में एक शानदार सर्वर एप्लिकेशन बनाया है। अब इसे प्रोडक्शन में चलाने की आवश्यकता है। VPS पर Swift-एप्लिकेशन का डिप्लॉयमेंट करने के लिए Linux पर Swift की विशिष्टताओं को समझना, सर्वर वातावरण को कॉन्फ़िगर करना और स्थिरता और प्रदर्शन सुनिश्चित करने के लिए सही टूल का उपयोग करना आवश्यक है। इस उन्नत गाइड में, हम पूरे चक्र को समझेंगे: Linux के लिए कंपाइलेशन से लेकर CI/CD सेटअप, Docker और Supervisor के साथ काम करना तक।
\n\n1. सर्वर तैयार करना और Linux के लिए Swift कंपाइल करना
\nपहली बात जो समझनी चाहिए: macOS और Linux पर Swift अलग-अलग इकोसिस्टम हैं। VPS (Ubuntu 22.04 LTS) पर डिप्लॉय करने के लिए क्रॉस-कंपाइलेशन या सीधे सर्वर पर बिल्ड करने की आवश्यकता होती है। लाइब्रेरी समस्याओं से बचने के लिए सर्वर पर ही बिल्ड करने की सिफारिश की जाती है।
\n\n1.1 Ubuntu पर Swift स्थापित करना
\nSSH के माध्यम से सर्वर से कनेक्ट करें और आवश्यक निर्भरताएँ स्थापित करें:
\nsudo apt update\nsudo apt install -y curl git clang libicu-dev libcurl4-openssl-dev libssl-dev \\\n libsqlite3-dev libxml2-dev pkg-config uuid-dev\n\n# Swift Toolchain का नवीनतम संस्करण डाउनलोड करें\nwget https://download.swift.org/swift-5.9.2-release/ubuntu2204/swift-5.9.2-RELEASE/swift-5.9.2-RELEASE-ubuntu22.04.tar.gz\ntar -xzf swift-5.9.2-RELEASE-ubuntu22.04.tar.gz\nsudo mv swift-5.9.2-RELEASE-ubuntu22.04 /usr/share/swift\n\n# PATH में जोड़ें\necho 'export PATH=/usr/share/swift/usr/bin:$PATH' >> ~/.bashrc\nsource ~/.bashrc\nswift --version\n\n1.2 प्रोजेक्ट को क्लोन करना और बिल्ड करना
\nरिपॉजिटरी को क्लोन करें और एप्लिकेशन का रिलीज़ वर्जन बिल्ड करें:
\ngit clone https://github.com/your-username/your-swift-app.git\ncd your-swift-app\nswift build --configuration release\nसफल बिल्ड के बाद, बाइनरी .build/release/YourApp पर होगी। इसे मैन्युअल रूप से चलाकर जाँचें:
./.build/release/YourApp serve --hostname 0.0.0.0 --port 8080\n\n2. प्रोडक्शन वातावरण सेटअप: Nginx और Supervisor
\nSwift-एप्लिकेशन को सीधे पोर्ट 80 पर चलाना एक बुरा अभ्यास है। Nginx (रिवर्स प्रॉक्सी) + Supervisor (प्रक्रिया प्रबंधक) के संयोजन का उपयोग करें।
\n\n2.1 Nginx कॉन्फ़िगरेशन
\nNginx स्थापित करें और हमारे Swift-एप्लिकेशन के लिए प्रॉक्सी अनुरोधों का कॉन्फ़िगरेशन बनाएं:
\nsudo apt install nginx\nsudo nano /etc/nginx/sites-available/yourapp\nफ़ाइल की सामग्री:
\nserver {\n listen 80;\n server_name yourdomain.com www.yourdomain.com;\n\n location / {\n proxy_pass http://127.0.0.1:8080;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection 'upgrade';\n proxy_set_header Host $host;\n proxy_cache_bypass $http_upgrade;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n }\n\n # बड़ी फ़ाइलों के लिए सेटिंग (यदि आवश्यक हो)\n client_max_body_size 50m;\n}\nकॉन्फ़िगरेशन सक्रिय करें और जाँचें:
\nsudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled/\nsudo nginx -t\nsudo systemctl restart nginx\n\n2.2 स्वचालित पुनरारंभ के लिए Supervisor सेटअप
\nSupervisor प्रक्रिया की निगरानी करेगा और क्रैश होने पर इसे पुनरारंभ करेगा। इसे स्थापित करें और कॉन्फ़िगरेशन बनाएं:
\nsudo apt install supervisor\nsudo nano /etc/supervisor/conf.d/yourapp.conf\nकॉन्फ़िगरेशन की सामग्री:
\n[program:yourapp]\ncommand=/home/ubuntu/your-swift-app/.build/release/YourApp serve --hostname 0.0.0.0 --port 8080\ndirectory=/home/ubuntu/your-swift-app\nuser=ubuntu\nautostart=true\nautorestart=true\nstartretries=3\nstderr_logfile=/var/log/yourapp.err.log\nstdout_logfile=/var/log/yourapp.out.log\nenvironment=ENVIRONMENT="producti