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

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

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

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

परिचय: Rust प्रोडक्शन के लिए आदर्श क्यों है और इसे कैसे डिप्लॉय करें

\n

Rust एक सिस्टम प्रोग्रामिंग भाषा है जो C++ के प्रदर्शन को मेमोरी सुरक्षा के साथ जोड़ती है। गार्बेज कलेक्टर की अनुपस्थिति और नेटिव बाइनरी फ़ाइल में कंपाइल करने की क्षमता के कारण, Rust एप्लिकेशन VPS (Virtual Private Server) पर डिप्लॉयमेंट के लिए आदर्श हैं। इस लेख में हम डिप्लॉय के पूरे चक्र को कवर करेंगे: प्रोजेक्ट बिल्ड करने से लेकर रिवर्स प्रॉक्सी और मॉनिटरिंग सेट करने तक। आप सीखेंगे कि अपने Rust एप्लिकेशन को एक स्थिर प्रोडक्शन सेवा में कैसे बदलें।

\n\n

1. तैयारी: VPS के लिए Rust एप्लिकेशन बनाना

\n

पहला कदम एक ऑप्टिमाइज़्ड बाइनरी फ़ाइल बनाना है। इसके लिए हमें आपकी लोकल मशीन (या सर्वर पर) Rust toolchain की आवश्यकता होगी।

\n\n

1.1. रिलीज़ मोड में कंपाइलेशन

\n

प्रोजेक्ट की रूट डायरेक्टरी में यह कमांड चलाएँ:

\n
cargo build --release
\n

यह target/release/ फ़ोल्डर में एक ऑप्टिमाइज़्ड बाइनरी बनाएगा। actix-web या rocket पर वेब एप्लिकेशन के लिए, फ़ाइल का आकार 5-15 MB हो सकता है। आकार कम करने के लिए Cargo.toml में जोड़ें:

\n
[profile.release]\nopt-level = 3\nlto = true\ncodegen-units = 1\nstrip = true
\n\n

1.2. एनवायरनमेंट वेरिएबल्स सेट करना

\n

प्रोडक्शन कॉन्फ़िगरेशन के लिए .env.prod फ़ाइल बनाएँ। वेब सर्वर के लिए उदाहरण:

\n
DATABASE_URL=postgres://user:pass@localhost:5432/mydb\nRUST_LOG=info\nSERVER_HOST=0.0.0.0\nSERVER_PORT=8080
\n\n

1.3. फ़ाइलों को VPS पर स्थानांतरित करना

\n

बाइनरी, स्टैटिक फ़ाइलें और कॉन्फ़िगरेशन को सर्वर पर कॉपी करें। scp या rsync का उपयोग करें:

\n
scp target/release/myapp user@your-vps-ip:/home/user/app/\nscp -r static/ user@your-vps-ip:/home/user/app/static/\nscp .env.prod user@your-vps-ip:/home/user/app/.env
\n\n

2. सर्वर सेटअप: systemd और Nginx

\n

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

\n\n

2.1. systemd सेवा बनाना

\n

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

\n
[Unit]\nDescription=Rust web application\nAfter=network.target\n\n[Service]\nUser=www-data\nWorkingDirectory=/home/user/app\nExecStart=/home/user/app/myapp\nRestart=always\nRestartSec=10\nEnvironmentFile=/home/user/app/.env\n\n[Install]\nWantedBy=multi-user.target
\n

सेवा को सक्रिय करें:

\n
sudo systemctl daemon-reload\nsudo systemctl enable myapp\nsudo systemctl start myapp\nsudo systemctl status myapp
\n\n

2.2. Nginx को रिवर्स प्रॉक्सी के रूप में सेट करना

\n

Rust एप्लिकेशन पोर्ट 8080 (आंतरिक) पर सुनेगा, और Nginx बाहरी अनुरोधों को पोर्ट 80/443 पर स्वीकार करेगा। कॉन्फ़िगरेशन बनाएँ /etc/nginx/sites-available/myapp:

\n
server {\n    listen 80;\n    server_name your-domain.com;\n\n    location / {\n        proxy_pass http://127.0.0.1:8080;\n        proxy_set_header Host $host;\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    location /static/ {\n        alias /home/user/app/static/;\n        expires 30d;\n    }\n}
\n

साइट को सक्रिय करें:

\n
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/\nsudo nginx -t\nsudo systemctl reload nginx
\n\n

2.3. HTTPS सेटअप (वैकल्पिक)

\n

Certbot इंस्टॉल करें और SSL प्रमाणपत्र प्राप्त करें:

\n
sudo apt install certbot python3-certbot-nginx\nsudo certbot --nginx -d your-domain.com
\n\n

3. डेटाबेस प्रबंधन और माइग्रेशन

\n

यदि आपका Rust एप्लिकेशन डेटाबेस का उपयोग करता है (जैसे, diesel या sqlx के साथ PostgreSQL), तो इसे VPS पर सेट करें।

\n\n

3.1. PostgreSQL इंस्टॉलेशन

\n
sudo apt update\nsudo apt install postgresql postgres                

ब्लॉग

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