დომენი იყიდეთ, VPS გაქვთ, ბრაუზერი კი მაინც ამბობს „საიტი მიუწვდომელია". დაკარგული ნაწილი თითქმის ყოველთვის ორი DNS ჩანაწერი და ვებ-სერვერია, რომელიც სწორ მისამართზე ნამდვილად პასუხობს. აი, მთელი გზა — რეგისტრატორიდან მოქმედ HTTPS-ბოქლომამდე.
დაწყებამდე: იღებს თუ არა თქვენი გეგმა ვებ-ტრაფიკს?
ვიზიტორები სერვერის 80-ე და 443-ე პორტებს უკავშირდებიან. ამისთვის საჭიროა გეგმა საკუთარი საჯარო IP-ით. NAT-გეგმები მხოლოდ თქვენს პირად SSH-პორტს გადამისამართებენ, ამიტომ დომენზე საიტს ვერ განათავსებენ — ჩვენი სტატია გამოყოფილი IP თუ NAT განსხვავებას ხსნის. პატარა საიტი Nano-IP-ზე კარგად მუშაობს.
1. იპოვეთ სერვერის მისამართები
თქვენი IPv4 და IPv6 მისამართები სამართავ პანელში სერვერის გვერდზეა. მაგალითებში დოკუმენტაციის მისამართებს ვიყენებთ:
- IPv4:
203.0.113.10 - IPv6:
2001:db8::10
2. შექმენით DNS ჩანაწერები
შედით იქ, სადაც თქვენი დომენის DNS იმართება (ჩვეულებრივ რეგისტრატორთან), და დაამატეთ:
| ტიპი | სახელი | მნიშვნელობა | TTL |
|---|---|---|---|
| A | @ | 203.0.113.10 | 300 |
| AAAA | @ | 2001:db8::10 | 300 |
| CNAME | www | example.com. | 300 |
@ მთავარ დომენს ნიშნავს. მოკლე TTL, მაგალითად 300 წამი, შეცდომების გასწორებას იაფს ხდის; როცა ყველაფერი იმუშავებს, შეგიძლიათ 3600-მდე გაზარდოთ.
თუ ჯერ IPv6 არ გინდათ, AAAA ჩანაწერი ჯერჯერობით გამოტოვეთ — იხილეთ გაფრთხილება მე-5 ნაბიჯში.
3. შეამოწმეთ, პასუხობს თუ არა DNS
ნუ ენდობით რეგისტრატორის „შენახულია" შეტყობინებას. პირდაპირ DNS-ს ჰკითხეთ:
dig +short example.com A
dig +short example.com AAAA
dig +short www.example.com
dig +short example.com A @1.1.1.1
ბოლო ხაზი საჯარო რეზოლვერს ეკითხება, რაც უფრო ახლოსაა იმასთან, რასაც თქვენი ვიზიტორები ხედავენ. თუ თქვენი IP დაბრუნდა, DNS მზადაა.
4. აიძულეთ სერვერი, უპასუხოს
დააინსტალირეთ nginx და გახსენით პორტები:
apt update && apt install -y nginx
ufw allow 80/tcp
ufw allow 443/tcp
გახსენით http://example.com — უნდა დაინახოთ nginx-ის მისასალმებელი გვერდი. ახლა დაამატეთ HTTPS უფასო სერტიფიკატით:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot nginx-ის კონფიგურაციას არედაქტირებს, HTTPS-ზე გადამისამართებას აყენებს და სერტიფიკატს ავტომატურად აახლებს. nginx-ის უკან რეალური აპლიკაციისთვის მიჰყევით ჩვენს HTTPS-ით reverse proxy-ის სახელმძღვანელოს.
5. IPv6-ის ხაფანგი
ამაში ბევრი ვარდება. AAAA ჩანაწერს ამატებთ, nginx კი მხოლოდ IPv4-ზე უსმენს. IPv6-ის ვიზიტორები (ბევრი მობილური ქსელი) ჯერ IPv6-მისამართს ცდილობენ და მარცხდებიან. დარწმუნდით, რომ server ბლოკში ორივე ხაზია:
listen 80;
listen [::]:80;
Ubuntu-ზე nginx-ის ნაგულისხმევი კონფიგურაცია უკვე შეიცავს [::]-ს, მაგრამ საკუთარ კონფიგურაციებში ის ხშირად ქრება. შეამოწმეთ IPv6-ის მქონე მანქანიდან:
curl -6 -I https://example.com
ხშირი პრობლემები
- ძველი IP მაინც ჩანს: თქვენმა ლოკალურმა რეზოლვერმა ის ქეშში შეინახა. დაელოდეთ TTL-ის ამოწურვას ან ჰკითხეთ
@1.1.1.1-ს, როგორც ზემოთ. - Certbot დროის ამოწურვით მარცხდება: 80-ე პორტი დაბლოკილია ან DNS ჯერ აქ არ მიუთითებს. ხელახლა შეამოწმეთ
ufw statusდაdig. - www-ის გარეშე მუშაობს, www-ით — არა: სერტიფიკატი ან server ბლოკი
www-ს არ შეიცავს. certbot ორივე სახელით ხელახლა გაუშვით.
უკუ DNS-ის შესახებ
A და AAAA ჩანაწერები სახელიდან IP-ისკენ მიდის. უკუ DNS (PTR) საპირისპირო მიმართულებით მიდის და მას რეგისტრატორთან კი არა, სამართავ პანელში აყენებთ. ის მხოლოდ ფოსტისთვის გჭირდებათ, ან მაშინ, როცა რომელიმე სერვისი მას ამოწმებს — ამას ჩვენი PTR-ის სახელმძღვანელო აღწერს.
თუ საიტს პირველად უშვებთ ონლაინ, ვებ-საიტის გამოყენების გვერდი ზომის არჩევაში დაგეხმარებათ, ქსელის დოკუმენტაცია კი ჩამოთვლის, რომელ მისამართებს იღებს თითოეული გეგმა.
კომენტარები
ჯერ არ არის კომენტარები. იყავით პირველი.