Ubuntu VPSలో మొదటి HTTPS వెబ్సైట్ను ప్రారంభించండి
కొత్త Ubuntu 24.04 LTS VPSలో Nginxతో చిన్న static వెబ్సైట్ను HTTPS ద్వారా అందించండి. SSH key, ప్రత్యేక admin ఖాతా, సర్టిఫికెట్ renewal, reboot తర్వాత తనిఖీలు ఈ ప్రక్రియలో ఉన్నాయి. ఇప్పటికే పనిచేస్తున్న సర్వర్పై ఉదాహరణలను అలాగే అమలు చేసే ముందు దాని ప్రస్తుత అమరికను పరిశీలించాలి.
VPSuntu · నవీకరణ: · చదవడానికి సుమారు 6 నిమిషాలు
గైడ్లోని విభాగాలు
సర్వర్, domain, రికవరీ ప్రవేశాన్ని సిద్ధం చేయండి
Public IPv4, port 22లో SSH, sudo ఉపయోగించగల ప్రారంభ ఖాతా, మీ నియంత్రణలోని domain ఉన్న కొత్త Ubuntu 24.04 VPSను తీసుకోండి. సర్వర్ను సృష్టించే ముందు తదుపరి దశలో key తయారు చేయండి. ఖాళీ సర్వర్ ఇప్పటికే ఉంటే పనిచేస్తున్న ప్రవేశం ద్వారా key జోడించే ప్రత్యామ్నాయాన్ని అనుసరించండి. Client commands మీ Linux, macOS లేదా WSLలోని Bashలో; server commands SSH sessionలో నడుస్తాయి. ఉదాహరణ pathsలో ఇప్పటికే deployment ఉంటే ఆపండి.
203.0.113.10 స్థానంలో మీ సర్వర్ IP, app.example.com స్థానంలో మీ hostname పెట్టండి. రెండూ డాక్యుమెంటేషన్ ఉదాహరణలు. ubuntu బదులుగా ప్రొవైడర్ ఇచ్చిన ప్రారంభ username వాడండి. ప్రవేశం లేదా firewall మార్చే ముందు recovery console తెరవండి. Oracle Ubuntu imageకు దిగువ UFW విధానం వర్తించదు.
SSH key తయారు చేసి కొత్త కనెక్షన్ను పరీక్షించండి
మీ కంప్యూటర్లో ప్రత్యేక key సృష్టించి passphrase ఇవ్వండి. ఆ filename ఇప్పటికే ఉంటే మొత్తం ప్రక్రియలో మరొక పేరు వాడండి. .pub మాత్రమే public key; private ఫైల్ను మీ కంప్యూటర్లో భద్రంగా ఉంచండి.
mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/ubuntu_vps
cat ~/.ssh/ubuntu_vps.pubకొత్త VPS కోసం: ఇప్పుడు Ubuntu 24.04 సర్వర్ను సృష్టిస్తూ ఈ public keyని ప్రొవైడర్ SSH-key fieldలో ఇవ్వండి. ప్రారంభ username నిర్ధారించండి. ఇప్పటికే ఉన్న సర్వర్కు సంబంధించిన తదుపరి రెండు command blocks వదిలి host fingerprint తనిఖీకి వెళ్లండి.
ఇప్పటికే సృష్టించిన ఖాళీ VPS కోసం: పనిచేస్తున్న SSH session తెరిచే ఉంచండి. మీ కంప్యూటర్లో మరొక terminal నుంచి ప్రస్తుత authenticationతో public key పంపండి. existing_vps_key స్థానంలో ప్రస్తుతం వాడే private key filename ఇవ్వండి. Password లేదా SSH agentతో ప్రవేశిస్తే -i ~/.ssh/existing_vps_key వదిలేయండి; సర్వర్ authentication policy మార్చవద్దు.
scp -i ~/.ssh/existing_vps_key ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubఇప్పటికే తెరిచిన server sessionలో పంపిన public keyని తనిఖీ చేసి మీ ప్రారంభ ఖాతాలోని authorized_keysకు జోడించండి. Append వల్ల పాత entries ఉంటాయి; అదనపు newline చివరి entryకి newline లేకున్నా వేరు చేస్తుంది. పనిచేసే ప్రవేశం లేకపోతే ముందుగా ప్రొవైడర్ recovery విధానం వాడండి.
if ssh-keygen -lf ~/ubuntu-vps-admin.pub; then
mkdir -p ~/.ssh
chmod 700 ~/.ssh
printf '\n' >> ~/.ssh/authorized_keys
cat ~/ubuntu-vps-admin.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
fiరెండు మార్గాల్లోనూ మొదటి connection అంగీకరించే ముందు trusted recovery consoleలో సరిపోలే host public key fingerprint చూడండి. Ed25519 host key కోసం consoleలో:
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubమీ కంప్యూటర్ నుంచి కొత్త keyతో కొత్త connection తెరవండి. అది పనిచేసే వరకు పాత ప్రవేశాన్ని మూయవద్దు.
ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10తదుపరి దశలో సృష్టించే admin కోసం మరో స్థానిక terminal నుంచి public key పంపండి. అదే తాత్కాలిక public-key ఫైల్ను మళ్లీ పంపడం సమస్య కాదు.
scp -i ~/.ssh/ubuntu_vps ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubప్రత్యేక admin ఖాతా, sudo ప్రవేశాన్ని పరీక్షించండి
సర్వర్లో ముందుగా getent passwd deploy చూడండి. ఖాతా కనిపిస్తే వాడని మరో username ఎంచుకుని home paths, group names సహా అన్ని ఉదాహరణల్లో మార్చండి. మరొకరి key ఫైల్ను భర్తీ చేయవద్దు. Image, వనరులు, upgrades పరిశీలించి adminను సృష్టించండి. Sudo prompts కోసం బలమైన password పెట్టండి; install commands పరిమిత permissionsతో key ఫైల్ యాజమాన్యాన్ని అమర్చుతాయి.
cat /etc/os-release
free -h
df -h /
sudo apt update
sudo apt upgrade
sudo adduser deploy
sudo usermod -aG sudo deploy
sudo install -d -m 700 -o deploy -g deploy /home/deploy/.ssh
sudo install -m 600 -o deploy -g deploy ~/ubuntu-vps-admin.pub /home/deploy/.ssh/authorized_keysమీ కంప్యూటర్లో కొత్త terminal నుంచి కొత్త adminగా కనెక్ట్ అవ్వండి:
ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10ఈ కొత్త server sessionలో sudo పరీక్షించండి. Deploy password అంగీకరించిన తర్వాత root రావాలి. రెండు తనిఖీలు పనిచేసిన తర్వాత ఇక్కడే కొనసాగండి; మొదటి ప్రవేశాన్ని అందుబాటులో ఉంచండి.
sudo whoamiNginx, మీ imageకు సరిపడే firewall ఏర్పాటు చేయండి
సర్వర్లో Nginx ఇన్స్టాల్ చేయండి. Guest firewall, ప్రొవైడర్ network firewall రెండూ ప్రవేశాన్ని ప్రభావితం చేస్తాయి. మార్పుల సమయంలో recovery console, పనిచేసే SSH session అందుబాటులో ఉంచండి.
sudo apt install nginx
sudo systemctl enable --now nginxప్రొవైడర్ firewallలో admin ఉన్న ప్రదేశం నుంచి TCP 22, వెబ్సైట్ కోసం TCP 80/443 అనుమతించండి. SSH వేరే portలో ఉంటే ఆ ruleను కాపాడండి. Network rule వల్ల guest firewall మూసిన port స్వయంగా తెరుచుకోదు.
Oracle Cloud Ubuntu images: తదుపరి UFW block మొత్తాన్ని వదిలేయండి. Imageలోని iptables, iSCSI boot/block-volume నియమాలను కాపాడండి. UFW వీటితో విరుద్ధంగా పనిచేసి bootను అడ్డుకోవచ్చని Oracle హెచ్చరిస్తుంది. OCI security lists/NSG, డాక్యుమెంటెడ్ guest rulesలో HTTP/HTTPS అనుమతించండి. Rulesను flush చేయవద్దు; firewall packagesను భర్తీ చేయవద్దు.
ఇతర కొత్త Ubuntu images: ప్రొవైడర్ UFWను అనుమతించి వేరే managed firewall అవసరం లేనప్పుడే ఈ block వాడండి. Enable చేసే ముందు నిజమైన SSH portను అనుమతించండి; ఈ ఉదాహరణలో port 22.
sudo apt install ufw
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verboseతగిన firewall మార్గం తర్వాత కొత్త SSH login పరీక్షించండి. పాత session పనిచేయడం కొత్త connectionకు పరీక్ష కాదు. Certificate అడిగే ముందు తదుపరి external HTTP తనిఖీ కూడా పనిచేయాలి. సమస్యను గుర్తించేటప్పుడు పాత login పద్ధతులను అందుబాటులో ఉంచండి.
వేరే Nginx siteలో పేజీని అందించండి
సర్వర్లో కొత్త document root, configuration సృష్టించండి. Blockలో మీ hostname ఇవ్వండి. Quoted EOF markersను ఉంచండి: అవి shell ద్వారా $uri వంటి Nginx variables expand కాకుండా చేస్తాయి.
sudo install -d -m 755 /var/www/first-site
printf '%s\n' '<!doctype html><html lang="en"><title>First deployment</title><h1>Ubuntu VPS is serving this page</h1></html>' | sudo tee /var/www/first-site/index.html
sudo tee /etc/nginx/sites-available/first-site >/dev/null <<'EOF'
server {
listen 80;
listen [::]:80;
server_name app.example.com;
root /var/www/first-site;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
EOF
sudo ln -s /etc/nginx/sites-available/first-site /etc/nginx/sites-enabled/first-site
sudo nginx -tConfiguration test విజయవంతమైతేనే సర్వర్లో reload చేయండి:
sudo systemctl reload nginxDNS మార్చే ముందు మీ కంప్యూటర్ నుంచి ఈ hostnameను సర్వర్ IPకి పంపి చూడండి. Default Nginx పేజీ బదులుగా మీ heading రావాలి.
curl --resolve app.example.com:80:203.0.113.10 http://app.example.com/DNS జోడించి HTTPS సర్టిఫికెట్ పొందండి
Hostnameకు VPS IPv4ని సూచించే DNS A record పెట్టండి. ఈ సర్వర్లో IPv6 పనిచేస్తేనే AAAA ప్రచురించండి. పాత లేదా తప్పు AAAA visitors, certificate validationను వేరే చోటుకు పంపవచ్చు. ఇక్కడ proxy లేకుండా DNS నేరుగా VPSను సూచిస్తుందని భావిస్తున్నాం.
మీ కంప్యూటర్లో --resolve లేకుండా http://app.example.com/ అడగండి. మీ పేజీ వచ్చిన తర్వాత సర్వర్లో Ubuntu archiveలోని Certbot, Nginx plugin ఇన్స్టాల్ చేయండి. Universe repository అవసరం; package-not-found వస్తే ముందుగా దాన్ని పరిష్కరించండి.
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d app.example.com --redirect
sudo nginx -t
sudo certbot renew --dry-run
systemctl list-timers --all certbot.timerEmail, terms prompts పూర్తి చేయండి. Certbot ఈ site configurationను మార్చి HTTP నుంచి HTTPS redirect పెడుతుంది. Renewal timer scheduledగా ఉందో చూడండి; inactive అయితే sudo systemctl enable --now certbot.timer వాడండి. HTTP certificate validation, renewal కోసం port 80 అందుబాటులో ఉంచండి.
బయట నుంచి, reboot తర్వాత తనిఖీ చేయండి
మీ కంప్యూటర్లో redirect, certificate, కంటెంట్ను తనిఖీ చేయండి. HTTP నుంచి HTTPSకు redirect అయి సరైన heading కనిపించాలి. Curlకు -k ఇవ్వవద్దు; అది certificate validation లోపాలను దాచుతుంది.
curl -I http://app.example.com/
curl -I https://app.example.com/
curl -fsS https://app.example.com/ఇది test deploymentగా ఉన్నప్పుడే సర్వర్లో sudo reboot చేయండి. తిరిగి deployగా కనెక్ట్ అయి systemctl is-active nginx, external HTTPS request మళ్లీ పరీక్షించండి. Reboot SSHను ఉద్దేశపూర్వకంగా మూసేస్తుంది; యంత్రం తిరిగి రాకపోతే console వాడండి.
లోపాన్ని గుర్తించి పునరుద్ధరణకు సిద్ధం చేయండి
చిన్న స్క్రీన్లో అన్ని నిలువు వరుసలు చూడటానికి పట్టికను పక్కకు జరపండి.
| లక్షణం | మొదటి తనిఖీ |
|---|---|
| SSH timeout | IP, ప్రొవైడర్/guest firewall, recovery console |
| Permission denied (publickey) | Username, private key, authorized_keys permissions |
| Default Nginx పేజీ | DNS, server_name, enabled site |
| Certificate validation విఫలం | Public A/AAAA, port 80 |
| మార్పు తర్వాత Nginx విఫలం | sudo nginx -t, sudo journalctl -u nginx -n 50 --no-pager |
Login కోసం SSH లోపాల నిర్ధారణ చూడండి. Site files, Nginx configuration, DNS, rebuild దశలను VPS బయట ఉంచి వేరే యంత్రంలో restore పరీక్షించండి. Certificate private keysను backup చేస్తే రక్షిత storage అవసరం. Availability, certificate-expiry alerts పెట్టండి; ఒక్క విజయవంతమైన తనిఖీ రేపటి renewalను పర్యవేక్షించదు.
Static పేజీ, configuration కోసం ఫైల్ backup/restore సాధనతో ప్రారంభించండి. పూర్తి recoveryకి మిగిలిన assets, certificates, services కూడా అవసరం. ఇది static-files deployment మాత్రమే; database లేదా runtimeకు ప్రత్యేక configuration, consistent backup కావాలి. వాటిని జోడించేటప్పుడు వనరుల కొలతల గైడ్ వాడండి.
ప్రశ్నలు, సమాధానాలు
ఈ commandsను ఇప్పటికే నడుస్తున్న సైట్పై వాడవచ్చా?
ముందుగా వేరే test VPSలో ప్రయత్నించండి. ఇవి files సృష్టిస్తాయి, firewallను మార్చవచ్చు, Certbotతో Nginxను సవరించవచ్చు. పాత sites, access rules, recoveryని ముందుగా సమీక్షించాలి.
WordPress, Node.js లేదా database కూడా ఇన్స్టాల్ అవుతాయా?
కాదు. ఇది static HTTPS వెబ్సైట్ను సిద్ధం చేస్తుంది. ఆ పనిచేసే పునాదిని ఉంచి runtimeను జోడించండి; startup, health checks, data recoveryని విడిగా పరీక్షించండి.