Skip to content
VDS · वेबसाइट और वेब सर्वर

Caddy: बिना झंझट सर्टिफ़िकेट वाली साइट

एक वेब सर्वर जो खुद HTTPS सर्टिफ़िकेट लेता और रिन्यू करता है। VPS पर इंस्टॉलेशन, मिनिमल Caddyfile, और Nginx से माइग्रेशन।

23 अगस्त 2026 को अपडेट किया गया

Caddy वही काम करता है जो Nginx करता है, लेकिन Let's Encrypt सर्टिफिकेट खुद जारी और रिन्यू करता है। साइट का कॉन्फ़िगरेशन तीन लाइनों में आ जाता है, इसलिए VDS पर पहले प्रोजेक्ट के लिए यह काम करते HTTPS तक पहुँचने का सबसे छोटा रास्ता है।

इंस्टॉलेशन

Debian और Ubuntu — आधिकारिक रिपॉज़िटरी से:

apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
  | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
  > /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install -y caddy

AlmaLinux और CentOS Stream:

dnf install -y 'dnf-command(copr)'
dnf copr enable -y @caddy/caddy
dnf install -y caddy && systemctl enable --now caddy

आपकी पहली साइट

पूरा कॉन्फ़िग /etc/caddy/Caddyfile में रहता है:

example.ru {
    root * /var/www/example.ru
    file_server
    encode gzip zstd
}
mkdir -p /var/www/example.ru
echo '<h1>Works</h1>' > /var/www/example.ru/index.html
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

पहली रिक्वेस्ट के कुछ सेकंड बाद साइट https://example.ru पर खुल जाती है। और कुछ शुरू करने की ज़रूरत नहीं: Caddy ने सर्टिफिकेट खुद ले लिया और उसे अपने आप रिन्यू भी करेगा।

ऐप्लिकेशन को प्रॉक्सी करना

अगर आपकी कोई Node.js या Python सर्विस लोकल पोर्ट पर चल रही है, तो कॉन्फ़िग ऐसा दिखेगा:

api.example.ru {
    reverse_proxy 127.0.0.1:3000
}

Caddy X-Forwarded-For और X-Forwarded-Proto हेडर खुद जोड़ देता है। स्कीम के बारे में ज़्यादा जानने के लिए रिवर्स प्रॉक्सी देखें।

कई साइटें यानी उसी फ़ाइल में कई ब्लॉक, देखें एक ही मशीन पर कई साइटें।

पहले से क्या जाँच लें

  • डोमेन का A रिकॉर्ड पैनल /hosting/vds/m/<id> के “Overview” में दिए मशीन एड्रेस की ओर पॉइंट करता हो;
  • मशीन के फ़ायरवॉल में पोर्ट 80 और 443 खुले हों और Nginx या Apache ने उन्हें न ले रखा हो;
  • डोमेन सच में रिज़ॉल्व होता हो: dig +short example.ru।

अगर पहला पॉइंट पूरा नहीं है, तो सर्टिफिकेट जारी नहीं होगा: Let's Encrypt को डोमेन नाम से आपकी मशीन तक पहुँचना होता है।

आम एरर

लक्षणकारण
could not get certificateडोमेन मशीन की ओर पॉइंट नहीं करता, या पोर्ट 80 बंद है
address already in useNginx या Apache चल रहा है — इनमें से एक बंद करें
साइट सिर्फ़ HTTP पर खुलती हैCaddyfile में नाम से पहले :80 या http:// लिखा है
बहुत ज़्यादा जारी करने की कोशिशेंLet's Encrypt की लिमिट — tls internal से डीबग करें

लॉग: journalctl -u caddy -f।

Caddy सर्टिफिकेट /var/lib/caddy/.local/share/caddy में रखता है। “Access” टैब से सिस्टम दोबारा इंस्टॉल करते समय इस डायरेक्टरी की कॉपी रखें, वरना रीइंस्टॉल के बाद जारी करना शुरू से होगा।