Ubuntu VPS-இல் முதல் HTTPS இணையதளத்தை வெளியிடுங்கள்
Ubuntu 24.04 LTS இயங்கும் புதிய VPS-இல் Nginx மற்றும் HTTPS மூலம் சிறிய static இணையதளத்தை வெளியிடலாம். தனி நிர்வாகக் கணக்கு, SSH key, certificate renewal, reboot-க்குப் பிந்தைய சோதனை ஆகியவற்றை இந்த வழிகாட்டி விளக்குகிறது.
VPSuntu · புதுப்பிப்பு: · படிக்கச் சுமார் 6 நிமிடங்கள்
வழிகாட்டியின் பகுதிகள்
சர்வர், domain, மீட்பு அணுகலைத் தயார் செய்யுங்கள்
Public IPv4, SSH port 22, sudo அனுமதியுள்ள ஆரம்பக் கணக்கு, உங்கள் கட்டுப்பாட்டிலுள்ள domain தேவை. Server உருவாக்குவதற்கு முன் அடுத்த பகுதியில் SSH key உருவாக்குங்கள். காலியான VPS ஏற்கெனவே இருந்தால், இயங்கும் அணுகல் மூலம் key சேர்க்கும் வழியைப் பயன்படுத்துங்கள். Client commands Linux, macOS அல்லது WSL-இல் Bash terminal-க்கானவை; server commands SSH session-இல் இயங்க வேண்டும். எடுத்துக்காட்டுப் பாதைகளில் ஏற்கெனவே deployment இருந்தால் நிறுத்துங்கள்.
203.0.113.10, app.example.com ஆகியவை ஆவண எடுத்துக்காட்டுகள்; உங்கள் IP, hostname-ஆக மாற்றுங்கள். ஆரம்ப username ubuntu என்பதையும் வழங்குநருக்கு ஏற்ப மாற்றவும். Access அல்லது firewall மாற்றும் முன் recovery console-ஐத் திறக்கவும். UFW-க்கு முன் image விதிகளைப் படியுங்கள்; Oracle Ubuntu-வுக்கு வேறு firewall முறை தேவை.
SSH key உருவாக்கி அணுகலை உறுதிசெய்யுங்கள்
உங்கள் கணினியில் தனி key உருவாக்கி passphrase அமைக்கவும். அதே filename இருந்தால் வேறு பெயரை எல்லா commands-இலும் பயன்படுத்தவும். .pub பொதுவான key; private file உங்கள் கணினியிலேயே இருக்க வேண்டும்.
mkdir -p ~/.ssh
ssh-keygen -t ed25519 -f ~/.ssh/ubuntu_vps
cat ~/.ssh/ubuntu_vps.pubபுதிய VPS: Ubuntu 24.04 server உருவாக்கும்போது இந்த public key-ஐ வழங்குநரின் SSH-key புலத்தில் சேர்க்கவும். Username உறுதிசெய்து host fingerprint சோதனைக்குச் செல்லவும்; existing-server commands தேவையில்லை.
ஏற்கெனவே உள்ள காலி VPS: இயங்கும் SSH session-ஐ மூட வேண்டாம். வேறு client terminal-இல் புதிய public key-ஐ ஏற்கெனவே செயல்படும் authentication மூலம் நகலெடுக்கவும். existing_vps_key இடத்தில் தற்போதைய private key filename வர வேண்டும். Password அல்லது 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-இல் பதிவேற்றிய key-ஐச் சரிபார்த்து உங்கள் ஆரம்பக் கணக்கின் authorized_keys-இல் சேர்க்கவும். Append பழைய entries-ஐப் பாதுகாக்கிறது; கடைசி வரியில் newline இல்லாவிட்டாலும் கூடுதல் 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முதல் இணைப்பை ஏற்கும் முன் trusted recovery console-இல் பொருத்தமான host public key fingerprint-ஐப் பார்க்கவும். Ed25519 host key-க்கு:
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pubஉங்கள் கணினியில் புதிய key மூலம் புதிய session திறக்கவும். இது வெற்றி பெறும் வரை பழைய அணுகலை வைத்திருக்கவும்.
ssh -i ~/.ssh/ubuntu_vps ubuntu@203.0.113.10அடுத்து உருவாக்கும் நிர்வாகிக்கு public key தேவை. மற்றொரு client terminal-இல் அதை நகலெடுக்கவும்; temporary public-key file ஏற்கெனவே இருந்தாலும் மறுபடியும் நகலெடுக்கலாம்.
scp -i ~/.ssh/ubuntu_vps ~/.ssh/ubuntu_vps.pub ubuntu@203.0.113.10:ubuntu-vps-admin.pubதனி நிர்வாகக் கணக்கைச் சோதியுங்கள்
Server-இல் முதலில் getent passwd deploy பார்க்கவும். கணக்கு இருக்கக் கூடாது. இருந்தால் பயன்படுத்தாத பெயரைத் தேர்ந்து home paths, group names உட்பட அனைத்திலும் மாற்றவும்; பிறரின் key file-ஐ மாற்றிவிடாதீர்கள். Image, வளங்கள், updates பார்த்த பின் நிர்வாகியை உருவாக்கி sudo-வுக்கு வலுவான password அமைக்கவும். Install commands key ownership மற்றும் குறுகிய permissions அமைக்கின்றன.
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வேறு client terminal-இல் புதிய நிர்வாகியாக இணையவும்:
ssh -i ~/.ssh/ubuntu_vps deploy@203.0.113.10அந்த புதிய server session-இல் sudo சோதனை செய்யவும். deploy password ஏற்றபின் root வர வேண்டும். இரு சோதனைகளும் வெற்றியானதும் இங்கே தொடரவும்; ஆரம்ப அணுகலை வைத்திருக்கவும்.
sudo whoamiNginx மற்றும் image-க்கு ஏற்ற firewall
Server-இல் Nginx நிறுவவும். Guest firewall, provider network firewall இரண்டும் அணுகலைப் பாதிக்கின்றன; console மற்றும் இயங்கும் SSH session தயாராக இருக்கட்டும்.
sudo apt install nginx
sudo systemctl enable --now nginxProvider firewall-இல் நிர்வாகம் செய்யும் இடத்திலிருந்து TCP 22, பார்வையாளர்களுக்கு TCP 80/443 அனுமதிக்கவும். SSH வேறு port என்றால் அதைப் பாதுகாக்கவும். Network rule மட்டும் guest firewall தடையை நீக்காது.
Oracle Cloud Ubuntu: கீழுள்ள UFW பகுதியை முழுவதும் தவிர்க்கவும். UFW, image-இன் முக்கிய firewall விதிகளுடன் முரண்பட்டு boot-ஐத் தடுக்கலாம். iSCSI boot/block volumes-ஐப் பாதுகாக்கும் iptables விதிகளை வைத்திருக்கவும். OCI security lists/NSG மற்றும் ஆவணப்படுத்தப்பட்ட guest விதிகள் மூலம் HTTP/HTTPS அமைக்கவும்; விதிகளை flush செய்யவோ firewall packages-ஐ மாற்றவோ வேண்டாம்.
மற்ற புதிய Ubuntu images: வழங்குநர் UFW ஆதரித்து, வேறு managed firewall தேவைப்படாதபோது மட்டும் இந்த commands பயன்படுத்தவும். Enable செய்வதற்கு முன் உண்மையான SSH 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 இதற்குச் சான்றல்ல. Certificate பெறும் முன் அடுத்த வெளிப்புற HTTP சோதனையும் வெற்றி பெற வேண்டும்.
தனி Nginx site-இல் பக்கத்தை வெளியிடுங்கள்
புதிய document root மற்றும் configuration உருவாக்கவும்; block-இல் hostname மாற்றவும். Quoted EOF குறிகளை வைத்திருக்கவும்: அவை $uri போன்ற Nginx variables-ஐ shell விரிவாக்குவதைத் தடுக்கின்றன.
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 மாற்றும் முன் client கணினியிலிருந்து server IP-இல் உங்கள் hostname-ஐக் கேட்கவும். Default Nginx welcome பக்கத்திற்குப் பதில் உங்கள் heading வர வேண்டும்.
curl --resolve app.example.com:80:203.0.113.10 http://app.example.com/DNS இணைத்து HTTPS certificate பெறுங்கள்
Hostname-க்கான A record-ஐ VPS IPv4-க்கு அமைக்கவும். IPv6 உண்மையில் இயங்கினால் மட்டும் AAAA சேர்க்கவும்; பழைய AAAA visitors மற்றும் validation-ஐத் தவறான இடத்துக்குக் கொண்டு செல்லலாம். இந்த எடுத்துக்காட்டில் proxy இல்லாமல் DNS நேரடியாக VPS-ஐக் காட்டுகிறது.
Client-இல் --resolve இல்லாமல் http://app.example.com/ திறந்து உங்கள் பக்கம் வருவதைச் சரிபார்க்கவும். Server-இல் 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 வழிமுறைகளை முடிக்கவும். Certbot site configuration-ஐத் திருத்தி HTTP → HTTPS redirect அமைக்கும். Renewal timer scheduled என்பதை உறுதிசெய்யவும்; inactive என்றால் sudo systemctl enable --now certbot.timer பயன்படுத்தவும். HTTP validation/renewal-க்காக port 80 திறந்திருக்க வேண்டும்.
வெளியிலிருந்தும் reboot-க்குப் பின்பும் சோதியுங்கள்
Client-இல் redirect, certificate, content பார்க்கவும். HTTP, HTTPS-க்கு செல்ல வேண்டும்; HTTPS உங்கள் heading-ஐக் காட்ட வேண்டும். Certificate பிழைகளை மறைக்கும் curl -k பயன்படுத்த வேண்டாம்.
curl -I http://app.example.com/
curl -I https://app.example.com/
curl -fsS https://app.example.com/இது test deployment ஆக இருக்கும்போதே server-இல் sudo reboot செய்யவும். மீண்டும் deploy-ஆக இணைந்து systemctl is-active nginx மற்றும் வெளிப்புற HTTPS request சோதிக்கவும். Reboot SSH-ஐ மூடும்; server திரும்பவில்லையெனில் console பயன்படுத்தவும்.
பிழையின் காரணத்தைக் கண்டறிந்து மீட்பைத் தயார் செய்யுங்கள்
சிறிய திரையில் எல்லா நெடுவரிசைகளையும் பார்க்க அட்டவணையைப் பக்கவாட்டில் நகர்த்துங்கள்.
| அறிகுறி | முதலில் பார்க்க வேண்டியது |
|---|---|
| SSH timeout | IP, provider/guest firewall, recovery console |
| Permission denied (publickey) | Username, private key, authorized_keys permissions |
| Default Nginx page | DNS, server_name, enabled site |
| Certificate validation failure | Public A/AAAA, port 80 |
| Nginx failure | sudo nginx -t; sudo journalctl -u nginx -n 50 --no-pager |
Login தோல்விக்கு SSH பிழை வழிகாட்டி உதவும். Site files, Nginx configuration, DNS பதிவுகள், rebuild steps ஆகியவற்றை VPS-க்கு வெளியே வைத்து வேறு machine-இல் மீட்டுச் சோதிக்கவும். Certificate private keys-ஐ backup எடுத்தால் பாதுகாப்பான storage தேவை. Availability, certificate-expiry alerts அமைக்கவும்; ஒருமுறை வெற்றி பெற்ற சோதனை நாளைய renewal-ஐக் கண்காணிக்காது.
கோப்பு backup மீட்புப் பயிற்சி இயங்கும் site-ஐ மாற்றாமல் தனி copy-ஐச் சோதிக்கிறது. முழு மீட்புக்கு மற்ற assets, certificates, services தேவை. இது static deployment; database/runtime சேர்த்தால் தனி service மற்றும் backup முறை வேண்டும். வளங்களை அளவிடும் வழிகாட்டியை பயன்படுத்தவும்.
கேள்வி பதில்கள்
இந்த commands-ஐ இயங்கும் website-இல் பயன்படுத்தலாமா?
முதலில் தனி test VPS பயன்படுத்தவும். இவை files, firewall, Nginx configuration மாற்றங்களைச் செய்யலாம். பழைய sites, access rules, recovery முறை ஆகியவற்றை முன்பே ஆய்வு செய்ய வேண்டும்.
WordPress, Node.js அல்லது database நிறுவப்படுமா?
இல்லை. இங்கு static HTTPS website உருவாகிறது. அதை இயங்கும் அடிப்படையாக வைத்துக்கொண்டு runtime சேர்த்து startup, health checks, data recovery சோதிக்கவும்.