VPS पर Rust एप्लिकेशन डिप्लॉय करना: चरण-दर-चरण मार्गदर्शिका

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

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

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

परिचय

Rust एक सिस्टम प्रोग्रामिंग भाषा है जो अपने प्रदर्शन और मेमोरी सुरक्षा के लिए जानी जाती है। हालांकि, एप्लिकेशन लिखना केवल आधी लड़ाई है। अपने प्रोजेक्ट को इंटरनेट पर उपयोगकर्ताओं के लिए सुलभ बनाने के लिए, इसे एक सर्वर पर तैनात करने की आवश्यकता है। इस लेख में, हम VPS (वर्चुअल प्राइवेट सर्वर) पर Rust एप्लिकेशन को तैनात करने की चरण-दर-चरण प्रक्रिया के माध्यम से आगे बढ़ेंगे।

हम actix-web फ्रेमवर्क पर आधारित एक सामान्य वेब सर्वर का उपयोग करेंगे, पर्यावरण स्थापित करेंगे, रिलीज बिल्ड संकलित करेंगे, एप्लिकेशन को systemd सेवा के रूप में चलाएंगे, और SSL प्रमाणपत्र के साथ Nginx रिवर्स प्रॉक्सी कॉन्फ़िगर करेंगे। इस गाइड का पालन करके, आप Linux चलाने वाले रिमोट सर्वर पर किसी भी Rust एप्लिकेशन को तैनात करने में सक्षम होंगे।



1. सर्वर और पर्यावरण की तैयारी

1.1. सर्वर से कनेक्ट करना

सबसे पहले, SSH के माध्यम से अपने VPS से कनेक्ट करें:

ssh root@your_server_ip

सुरक्षा के लिए सीमित विशेषाधिकारों (sudo) वाला एक अलग उपयोगकर्ता बनाने की अनुशंसा की जाती है, लेकिन सरलता के लिए, हम इस गाइड में root के रूप में काम करेंगे।



1.2. सर्वर पर Rust स्थापित करना

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

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shsource $HOME/.cargo/env

स्थापना सत्यापित करें:

rustc --versioncargo --version


1.3. सिस्टम निर्भरताएँ स्थापित करना

कुछ क्रेट्स (जैसे, openssl) बनाने के लिए सिस्टम लाइब्रेरीज़ की आवश्यकता हो सकती है। उन्हें स्थापित करें:

apt updateapt install build-essential pkg-config libssl-dev git -y


2. एप्लिकेशन बनाना और तैयार करना

2.1. actix-web के साथ एक सरल वेब सर्वर का उदाहरण

आइए एक न्यूनतम एप्लिकेशन बनाएं। यदि आपके पास पहले से कोई प्रोजेक्ट है, तो इस चरण को छोड़ दें।

Cargo.toml:

[package]name = "my_rust_app"version = "0.1.0"edition = "2021"

[dependencies]actix-web = "4"serde = { version = "1", features = ["derive"] }

src/main.rs:

use actix_web::{get, web, App, HttpServer, Responder};

#[get("/")]async fn index() -> impl Responder { "Hello from Rust on VPS!"}

#[actix_web::main]async fn main() -> std::io::Result<()> { println!("Starting server at 0.0.0.0:8080"); HttpServer::new(|| { App::new() .service(index) }) .bind("0.0.0.0:8080")? .run() .await}


2.2. रिलीज मोड में संकलन

एप्लिकेशन को अपनी स्थानीय मशीन पर या सीधे सर्वर पर बनाएं। अधिकतम प्रदर्शन के लिए, --release फ्लैग का उपयोग करें:

cargo build --release

परिणामी बाइनरी target/release/my_rust_app पर स्थित होगी (नाम पैकेज नाम से मेल खाता है)।



2.3. बाइनरी को सर्वर पर कॉपी करना (यदि स्थानीय रूप से बनाया गया है)

यदि आपने अपनी स्थानीय मशीन पर एप्लिकेशन बनाया है, तो इसे SCP के माध्यम से कॉपी करें:

scp target/release/my_rust_app root@your_server_ip:/opt/my_rust_app/

पहले से सर्वर पर /opt/my_rust_app निर्देशिका बनाएँ:

mkdir -p /opt/my_rust_app


3. systemd के माध्यम से स्टार्टअप कॉन्फ़िगर करना

यह सुनिश्चित करने के लिए कि एप्लिकेशन सिस्टम बूट पर स्वचालित रूप से शुरू हो और विफलता की स्थिति में पुनरारंभ हो, हम एक systemd सेवा बनाएंगे।



3.1. यूनिट फ़ाइल बनाना

फ़ाइल /etc/systemd/system/my_rust_app.service बनाएँ:

[Unit]Description=My Rust Web ApplicationAfter=network.target

[Service]Type=simpleUser=rootWorkingDirectory=/opt/my_rust_appExecStart=/opt/my_rust_app/my_rust_appRestart=on-failureRestartSec=10

[Install]WantedBy=multi-user.target

ब्लॉग

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