VPS पर Rust एप्लिकेशन का डिप्लॉयमेंट: चरण-दर-चरण उन्नत स्तर

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: VPS पर Rust का उन्नत डिप्लॉय क्यों आवश्यक है

\n

Rust में डेवलपमेंट केवल आधा काम है। दूसरा, कम महत्वपूर्ण नहीं, हिस्सा विश्वसनीय और सुरक्षित डिप्लॉयमेंट है। बुनियादी तरीके, जैसे मैन्युअल कंपाइलेशन और cargo run के माध्यम से चलाना, प्रोडक्शन के लिए उपयुक्त नहीं हैं। उन्नत स्तर पर ऑटोमेशन, प्रोसेस आइसोलेशन, मॉनिटरिंग और उच्च उपलब्धता सुनिश्चित करना आवश्यक है।

\n

इस लेख में, हम देखेंगे कि Docker, CI/CD (GitHub Actions), ऑटोस्टार्ट के लिए systemd और रिवर्स प्रॉक्सी के रूप में Nginx का उपयोग करके VPS पर Rust एप्लिकेशन का डिप्लॉयमेंट कैसे कॉन्फ़िगर करें। सभी कोड उदाहरण Rust और Bash में दिए गए हैं।

\n\n

1. VPS और वातावरण की तैयारी

\n

1.1. सर्वर की बुनियादी सेटिंग

\n

मान लीजिए कि आपके पास Ubuntu 22.04 LTS पर चलने वाला VPS है। सबसे पहले पैकेज अपडेट करें और आवश्यक टूल इंस्टॉल करें:

\n
sudo apt update && sudo apt upgrade -y\nsudo apt install -y curl git build-essential pkg-config libssl-dev
\n

rustup के माध्यम से Rust इंस्टॉल करें:

\n
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\nsource $HOME/.cargo/env\nrustc --version  # जाँच
\n

1.2. Docker की स्थापना

\n

Docker वातावरण का आइसोलेशन और पुनरुत्पादन सुनिश्चित करेगा:

\n
sudo apt install -y docker.io\nsudo systemctl enable --now docker\nsudo usermod -aG docker $USER\nnewgrp docker
\n

1.3. Nginx की स्थापना

\n

Nginx रिवर्स प्रॉक्सी और लोड बैलेंसर के रूप में कार्य करेगा:

\n
sudo apt install -y nginx\nsudo systemctl enable --now nginx
\n\n

2. Docker के साथ Rust एप्लिकेशन का कंटेनरीकरण

\n

2.1. मल्टी-स्टेज बिल्ड

\n

इमेज का आकार कम करने के लिए मल्टी-स्टेज बिल्ड का उपयोग करें। प्रोजेक्ट की रूट डायरेक्टरी में Dockerfile बनाएं:

\n
# बिल्ड स्टेज\nFROM rust:1.75-slim-bookworm AS builder\nWORKDIR /app\nCOPY Cargo.toml Cargo.lock ./\nCOPY src ./src\nRUN cargo build --release\n\n# फाइनल स्टेज\nFROM debian:bookworm-slim\nRUN apt update && apt install -y ca-certificates && rm -rf /var/lib/apt/lists/*\nWORKDIR /app\nCOPY --from=builder /app/target/release/my_app .\nEXPOSE 8080\nCMD ["./my_app"]
\n

यहाँ my_app आपकी बाइनरी फ़ाइल का नाम है। सुनिश्चित करें कि Cargo.toml में name = "my_app" निर्दिष्ट है।

\n

2.2. कंटेनर का बिल्ड और रन

\n
docker build -t my_app:latest .\ndocker run -d --name my_app -p 8080:8080 my_app:latest
\n

जाँचें कि एप्लिकेशन प्रतिक्रिया दे रहा है:

\n
curl http://localhost:8080
\n\n

3. ऑटोस्टार्ट और मॉनिटरिंग का कॉन्फ़िगरेशन (systemd + Docker Compose)

\n

3.1. सेवाओं के प्रबंधन के लिए Docker Compose

\n

docker-compose.yml बनाएं:

\n
version: '3.8'\nservices:\n  app:\n    image: my_app:latest\n    restart: always\n    ports:\n      - "127.0.0.1:8080:8080"\n    environment:\n      - RUST_LOG=info\n    healthcheck:\n      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]\n      interval: 30s\n      timeout: 10s\n      retries: 3
\n

ध्यान दें: ports 127.0.0.1 से बंधा है, ताकि बाहरी अनुरोध केवल Nginx के माध्यम से आएं।

\n

3.2. सेवा प्रबंधन के लिए Systemd यूनिट

\n

फ़ाइल /etc/systemd/system/my_app.service बनाएं:

\n
[Unit]\nDescription=My Rust Application\nAfter=docker.service\nRequires=docker.service\n\n[Service]\nType=oneshot\nRemainAfterExit=yes\nWorkingDirectory=/opt/my_app\nExecStart=/usr/bin/docker compose up -d\nExecStop=/usr/bin/docker compose down\nUser=deploy\nGroup=deploy\n\n[Install]\nWantedBy=multi-user.target
\n

इसे सक्षम और प्रारंभ करें:

\n
sudo systemctl daemon-reload\nsudo systemctl enable my_app\nsudo systemctl start my_app
\n\n

4. Nginx का कॉन्फ़िगरेशन

ब्लॉग

पुस्तक अनुशंसाएँ