Ravindra BagaleCourses & study guides English

AWS EC2 ला Domain Name कसं connect करायचं

आत्तापर्यंत आपल्या websites http://PUBLIC_IP/ वर उघडत होत्या. खऱ्या websites नावाने उघडतात, जसं instagram.com. या chapter मध्ये नावं का महत्त्वाची, DNS नावाचा IP address कसा करतो, domain कुठून आणि कसं safe पद्धतीने घ्यायचं, आणि A record ने ते EC2 server कडे कसं point करायचं ते शिकू. मग एकाच server वर अनेक websites host करू: प्रत्येकाला स्वतःचा subdomain, एक CNAME record आणि एक Nginx server block.

या class मध्ये काय शिकणार

  • Websites ना domain names का लागतात, आणि नुसत्या IP address चा problem
  • DNS नावाचा IP address कसा करतो
  • Registrars, चांगलं नाव निवडणं, registration term आणि cart
  • Owner, admin, technical आणि billing details, आणि domain वर आपला control ठेवणं
  • A record (@ ते तुमचा EC2 public IP) add करून site नावाने उघडणं
  • Stop आणि start केल्यावर A record का तुटतो, DNS changes ला किती वेळ लागतो, आणि त्यावर उपाय
  • Virtual hosting: एका server वर अनेक websites
  • TLD, domain आणि subdomain, आणि subdomains साठी CNAME records
  • Templates download करणं, spaces असलेल्या folders ना rename करणं, प्रत्येक subdomain साठी एक Nginx server block
  • Domain मध्ये capital letters ने फरक का पडत नाही, पण path मध्ये पडू शकतो

1. का: IP addresses कोणाच्याच लक्षात राहत नाहीत

का. आपला server एका IP address वर उत्तर देतो. समजा आपण Instagram आहोत: लोक app ची website उघडायला प्रत्येक वेळी आकड्यांची लांबलचक माळ type करतील का? नाही. ते instagram.com type करतात. नाव लक्षात ठेवायला, बोलून सांगायला आणि visiting card वर छापायला सोपं असतं.

नुसत्या IP चे अजून दोन problems:

  1. एक IP एकच default site दाखवतो. फक्त IP असेल तर visitor ला तुमची कुठली website पाहिजे ते Nginx ला कळत नाही.
  2. IP बदलू शकतो. Server ला नवीन IP मिळाला की जुना IP वापरणाऱ्या सगळ्या links आणि bookmarks तुटतात.
Domain names का: लोकांना नावं लक्षात राहतात,आकडे नाही फक्त IP address http://PUBLIC_IP/ 1. लक्षात ठेवायला आणि share करायला अवघड. 2. एक IP = एक default site. 3. Server ला नवीन IP मिळाला की बदलतो. Domain name http://example.com/ 1. लक्षात ठेवायला, type आणि print करायला सोपं. 2. अनेक नावं एकाच server कडे point करू शकतात. 3. IP बदलला तर एक record update करा.

Figure 1. नुसता IP लक्षात ठेवायला अवघड, एकच default site दाखवतो आणि बदलू शकतो. नाव सोपं, अनेक नावं एका server कडे point करू शकतात, आणि IP बदलला तर एक record update करायचा.

Classroom line

Every one of us will need to buy a domain name.

2. काय: DNS नावाचा IP करतो

काय. Computers नावांनी नाही, IP addresses ने connect होतात. DNS (Domain Name System) म्हणजे internet ची phone book: "या नावाचा IP address काय?" या प्रश्नाचं उत्तर देते.

कसं चालतं, step by step:

  1. तुम्ही browser मध्ये example.com type करता. Browser कडे नाव आहे, पण त्याला IP पाहिजे.
  2. तुमचा computer DNS resolver ला विचारतो (बहुतेक तुमच्या internet provider चा, किंवा एखादा public): "example.com चा IP काय?"
  3. Resolver त्या domain चे DNS records शोधतो आणि उत्तर मिळतं, उदा. PUBLIC_IP.
  4. Browser request PUBLIC_IP वर port 80 ला पाठवतो, आणि तुमच्या EC2 server वरचा Nginx उत्तर देतो.
नावाचा IP address कसा होतो (DNS) तुमचा browser example.com 1. तुम्ही example.com type करता. Browser कडे फक्त नाव आहे,IP नाही. DNS resolver ? 2. तुमचा computer DNS resolver ला विचारतो: example.com चाIP काय? DNS records A  @  PUBLIC_IP 3. Resolver domain चे records शोधतो आणि उत्तर मिळतं:PUBLIC_IP. EC2 server Nginx :80 4. Browser request PUBLIC_IP वर port 80 ला पाठवतो. Nginxउत्तर देतो.

Figure 2. Animation: नाव DNS resolver कडे जातं, domain च्या records मधून IP मिळतो, आणि browser त्या IP ला connect होतो.

Example 1. समजा आपण Instagram आहोत. तुम्ही instagram.com type केलं की steps 1 ते 4 एका सेकंदाच्या छोट्या भागात होतात, आणि तुम्हाला IP दिसतसुद्धा नाही. हाच तर मुद्दा आहे.

Try करा. तुमच्या स्वतःच्या computer वर चालवा:

nslookup example.com

उत्तरातली Address: line म्हणजे ते नाव ज्या IP कडे point करतं तो IP.

3. Domain कुठून घ्यायचं: registrars

काय. Domain names विकणारी आणि manage करणारी company म्हणजे registrar. नेहमीचे:

  1. GoDaddy
  2. Hostinger
  3. Amazon Route 53 (AWS मध्येच)
  4. आणि अजून बरेच

या chapter मध्ये आपण GoDaddy च्या screens वापरतो, पण प्रत्येक registrar मध्ये कल्पना त्याच: search, cart, आणि DNS records manage करायचं page.

4. चांगलं नाव कसं निवडायचं

का महत्त्वाचं. नाव हा वर्षानुवर्षं तुमचा पत्ता असतो. नंतर बदललं तर नवीन visiting cards, नवीन links आणि गमावलेले visitors.

चांगल्या नावांचे दोन प्रकार:

  1. Business चा keyword. समजा आपण shopping site बनवतोय: नावात cart किंवा shop सारखा शब्द असला की लोकांना कळतं तुम्ही काय करता.
  2. Unique brand word. समजा आपण Google किंवा TikTok आहोत: त्या शब्दांना आधी काहीच अर्थ नव्हता; brand ने त्यांना अर्थ दिला. Unique शब्द सगळीकडे आपल्या नावावर घेणं सोपं.

Tips:

  1. छोटं, spelling सोपं, phone वर सांगायला सोपं.
  2. Audience कमी करणारे शब्द टाळा, उदा. एकाच धर्माशी किंवा एकाच देशाशी जोडलेला शब्द, जर सगळेच customers हवे असतील तर.
  3. तुमच्या visitors ना सोयीचा शेवट (.com, .in वगैरे) निवडा. Practice साठी कुठलाही स्वस्त शेवट चालतो.

नाव आधीच घेतलेलं असेल तर. समजा आपल्याला instagram.com पाहिजे. ते घेतलेलं आहे, आणि search मध्ये available नाही असं दिसतं.

  1. काही registrars broker service देतात: ते fee घेऊन owner शी तुमच्या वतीने बोलतात. तरीही owner नाही म्हणू शकतो.
  2. काही लोक, ज्यांना domain investors म्हणतात, आकर्षक नावं आधीच घेऊन ठेवतात आणि नंतर विकतात. म्हणूनच बरीच चांगली छोटी नावं आधीच गेलेली असतात.
  3. बहुतेक वेळा सोपा मार्ग म्हणजे दुसरं नाव, किंवा दुसरा शेवट.

5. Registration: किती काळ, आणि cart मध्ये काय check करायचं

काय. Domain कायमचं विकत घेत नाही. ते 1 ते 10 वर्षांच्या term साठी register करायचं, मग renew.

  1. जास्त मोठा term म्हणजे नाव जास्त काळ safe, आणि त्या term मध्ये renewal price वाढली तरी तुम्हाला फरक पडत नाही.
  2. Renew करायला विसरलात तर नाव expire होतं आणि दुसरं कोणीही ते register करू शकतं.

Cart मध्ये, step by step:

Step 1. नाव search करून cart मध्ये टाका.

Step 2. Term check करा. "पहिल्या वर्षाचे" मोठे discounts बऱ्याचदा अनेक वर्षांच्या term वरच असतात. तुम्हाला खरंच जितकी वर्षं हवीत तितकी set करा.

Step 3. नको असलेले add-ons काढा (extra email, website builders वगैरे). आता खरी किंमत दिसते.

Step 4. फक्त पहिल्या वर्षाची नाही, renewal price पण वाचा.

Step 5. तुमचे contact details check करा, मग pay करा.

Domain घेणं: कुठून, कुठलं नाव, किती काळ 1. Registrars GoDaddy · Hostinger · Amazon Route 53 · आणि अजून बरेच 2. नाव निवडा Business चा keyword किंवा unique brand word. छोटं, spelling सोपं. Audience कमी करणारे शब्द टाळा. 3. Register करा 1 ते 10 वर्षांसाठी, मग renew. Cart मध्ये: term check करा, नको असलेले add-ons काढा, renewal priceवाचा.

Figure 3. Registrar निवडा, छोटं नाव निवडा, 1 ते 10 वर्षांसाठी register करा, आणि pay करण्याआधी cart साफ करा.

6. Owner, admin, technical, billing: control आपल्याकडे ठेवा

काय. Domain registration मध्ये contact details साठवलेले असतात:

  1. Owner (registrant): ज्या व्यक्तीचं किंवा business चं domain आहे.
  2. Administrative: domain बदलू आणि transfer करू शकतो.
  3. Technical: DNS आणि server settings बघतो.
  4. Billing: registration आणि renewal चे पैसे भरतो.

का महत्त्वाचं. समजा आपली bakery आहे आणि एक developer आपली website बनवतो. Developer ने domain स्वतःच्या account मध्ये register केलं तर control त्याच्याकडे. तो सोडून गेला, किंवा पैशावरून भांडण झालं, तर तो ते दुसरीकडे point करू शकतो किंवा expire होऊ देऊ शकतो.

Safe कसं राहायचं:

  1. Business owner ने domain स्वतःच्या account मध्ये आणि नावावर register करायचं.
  2. Owner आणि admin business owner कडेच राहू द्या.
  3. Developer ला technical कामासाठी limited access द्या (बऱ्याच registrars कडे delegate किंवा team-member option असतो), owner चा login कधीच नाही.
Registration details: owner आणि admin businessकडेच ठेवा Owner ज्या business चं domain आहे ते. Administrative Domain बदलू आणि transfer करू शकतो. Technical DNS आणि server settings बघतो. Billing Registration आणि renewal चे पैसे भरतो. Developer technical काम करू शकतो, पण owner आणि admin businessowner च्या नावावर आणि account मध्येच ठेवा. Developer ला limited access द्या, तुमचा login नाही. मग दुसरंकोणी तुमचं domain घेऊ किंवा delete करू शकत नाही.

Figure 4. Owner आणि admin business कडेच; developer ला फक्त limited technical access.

7. कसं: A record ने domain EC2 कडे point करा

काय. A record नावाला IPv4 address शी जोडतो. @ म्हणजे "domain स्वतः", म्हणून @ -> PUBLIC_IP असा A record example.com ला तुमच्या server कडे पाठवतो.

Step 1. EC2 console मध्ये Instances उघडा, तुमचा server select करा आणि त्याचा Public IPv4 address copy करा.

Step 2. GoDaddy मध्ये तुमचे products उघडा, domain निवडा आणि Manage DNS निवडा (बाकी registrars वर: DNS settings किंवा DNS records).

Step 3. Record add करा:

  1. Type: A
  2. Name: @
  3. Value: copy केलेला public IPv4 address
  4. TTL: default राहू द्या

@ साठी A record आधीच असेल (नवीन domains वर बऱ्याचदा parking page कडे point करणारा एक असतो), तर दुसरा add करण्याऐवजी तोच edit करा.

Step 4. Save करा.

Classroom line

Next, we have to add it inside GoDaddy.

8. Nginx install करा आणि domain test करा

Step 1. Server (Amazon Linux) ला ssh ने connect व्हा. त्याच्या Security Group मध्ये port 80 वर HTTP allow आहे ना ते बघा.

Step 2. Nginx install करा:

sudo yum install nginx -y

Step 3. Start करा:

[ec2-user@ip-172-31-xx-xx ~]$ sudo service nginx start
Redirecting to /bin/systemctl start nginx.service

त्या line चा अर्थ. Amazon Linux वर जुनी service command काम systemctl कडे देते, जो system चा service manager आहे, आणि तसं तुम्हाला सांगते. हा error नाही: Nginx start झालाय.

Step 4. http://PUBLIC_IP/ उघडा, मग http://example.com/. दोन्हीकडे Welcome to nginx! page दिसतं. नाव अजून उघडत नसेल तर काही मिनिटं थांबा (section 9).

Step 5. स्वतःचं test page बनवा:

sudo nano /usr/share/nginx/html/hello.html

एक line type करा, उदा. Hello from my own domain, Ctrl+O, Enter ने save करा, मग Ctrl+X.

Step 6. http://example.com/hello.html उघडा. तुमची line दिसते. आता नाव अगदी IP सारखंच काम करतं.

9. दोन गोष्टी लक्षात ठेवा: IP बदलू शकतो, आणि DNS ला वेळ लागतो

Problem 1: public IP बदलतो. EC2 instance stop करून परत start केला की AWS त्याला नवीन public IP देतो. Reboot मध्ये IP तसाच राहतो; stop आणि start मध्ये नाही. A record मध्ये जुनाच IP राहतो, म्हणून example.com चालणं बंद होतं.

Problem 2: DNS changes ला वेळ लागतो. Resolvers उत्तर record च्या TTL (time to live) पर्यंत लक्षात (cache) ठेवतात. Record बदलल्यावर तो वेळ संपेपर्यंत काही visitors ना जुनंच उत्तर मिळतं. बहुतेक वेळा काही मिनिटं; GoDaddy चा स्वतःचा message सांगतो की बहुतेक updates एका तासात लागू होतात पण 48 तासांपर्यंत लागू शकतात.

Example 2, step by step:

  1. सोमवार: A record @ -> OLD_IP. Site उघडते.
  2. संध्याकाळी: पैसे वाचवायला तुम्ही server stop करता.
  3. मंगळवार: तुम्ही तो start करता. EC2 वर NEW_IP दिसतो.
  4. example.com अजून OLD_IP कडे point करतं: site उघडत नाही.
  5. Quick fix: A record NEW_IP ला edit करा, save करा, आणि TTL पर्यंत थांबा.

खरा उपाय म्हणजे Elastic IP: तुम्ही release करेपर्यंत न बदलणारा public IP. तो पुढच्या chapter मध्ये.

Stop आणि start केल्यावर नवीन public IP; A recordमध्ये जुनाच राहतो 1. आज A  @  OLD_IP Site उघडते. सगळं बरोबर. 2. Stop, मग start EC2: NEW_IP AWS नवीन public IP देतो. 3. Site बंद A  @  OLD_IP नाव अजून जुन्या IP कडे point करतं. Quick fix: नवीन IP A record मध्ये टाका, मग थांबा: DNS उत्तरंTTL पर्यंत cache राहतात. Proper fix: Elastic IP, कधीच न बदलणारा public IP. तो पुढच्याchapter मध्ये.

Figure 5. Stop आणि start ने नवीन public IP मिळतो, पण A record मध्ये जुनाच राहतो. Record update करा, किंवा Elastic IP वापरा (पुढचा chapter).

10. का: एका server वर अनेक websites (virtual hosting)

का. चालू असलेला प्रत्येक server AWS bill वाढवतो. बहुतेक छोट्या websites दिवसातून थोडाच वेळ busy असतात.

Classroom line

Why should we host multiple websites inside one server?

Classroom line

The more servers you use, the bigger the bill you'll get.

Example 3: रिकामा बसलेला server, आकड्यांसह. समजा एका छोट्या site वर दिवसातून साधारण 100 मिनिटं visitors येतात.

  1. एका दिवसात 24 × 60 = 1,440 मिनिटं.
  2. Busy: 100 मिनिटं. रिकामा: 1,440 − 100 = 1,340 मिनिटं.
  3. 1,340 ÷ 1,440 ≈ 0.93, म्हणजे server दिवसातला साधारण 93% वेळ रिकामा बसतो.

Classroom line

So out of 24 hours it's used only about a hundred minutes, which means your server is sitting idle.

Example 4. चार छोट्या sites चार servers वर म्हणजे bill वर चार servers. त्याच चार sites एका server वर म्हणजे एक. यालाच virtual hosting म्हणतात: एक server, एक Nginx, प्रत्येक site चा एक folder, आणि visitor ने type केलेल्या नावावरून Nginx folder निवडतो. Shared hosting plans याच कारणाने स्वस्त असतात: अनेक छोट्या sites एक मोठा server share करतात.

Virtual hosting: एका server वर अनेक websites एक EC2 server, एक Nginx /usr/share/nginx/ musicplayer/ music.example.com videoplayer/ video.example.com photogallery/ photo.example.com का प्रत्येक server bill वाढवतो. छोट्या sites दिवसातून थोडाच वेळ busy; बाकी वेळ server रिकामा बसतो. एक server share करा: कमी खर्च, चांगला वापर. Shared hosting plansअसेच चालतात.

Figure 6. Virtual hosting: तीन नावं, एक EC2 server, एक Nginx, प्रत्येक site चा एक folder.

11. काय: TLD, domain आणि subdomain

नाव उजवीकडून डावीकडे वाचा. onepage.example.com घ्या:

  1. .com हा top-level domain (TLD). बाकी: .in, .org, .net.
  2. example.com हा domain: तुम्ही register आणि renew करता तो भाग.
  3. onepage हा subdomain. Subdomains तुम्ही स्वतः, हवे तितके, DNS records ने बनवता. वेगळं registration नाही.

Example 5. समजा आपण Google आहोत: mail.google.com, maps.google.com आणि drive.google.com हे एकाच domain चे, google.com चे, subdomains आहेत, आणि प्रत्येक वेगळी service उघडतो.

नाव उजवीकडून डावीकडे वाचा onepage.example.com .com Top-level domain (TLD)   .in, .com, .org वगैरे. नावाचा शेवटचा भाग. example Domain   example.com: तुम्ही register आणि renew करताते. onepage Subdomain   तुम्ही स्वतः बनवता, free, एका DNS recordने. समजा आपण Google आहोत: mail.google.com, maps.google.com आणिdrive.google.com हे एकाच domain चे subdomains.

Figure 7. onepage.example.com मधले TLD, domain आणि subdomain.

12. कसं: subdomains साठी CNAME records

काय. CNAME record सांगतो "हे नाव त्या नावाचंच दुसरं नाव आहे". onepage -> example.com असा CNAME onepage.example.com ला example.com च्या मागे पाठवतो, ज्याच्याकडे IP असलेला A record आधीच आहे.

जास्त A records का नाही, CNAME का? सगळे subdomains एकाच A record च्या मागे जातात. IP बदलला की तुम्ही एकच record edit करता, प्रत्येक subdomain चा एक नाही.

Step 1. GoDaddy च्या Manage DNS मध्ये नवीन record add करायला click करा.

Step 2. भरा:

  1. Type: CNAME
  2. Name: onepage (फक्त subdomain चा भाग)
  3. Value: example.com (काही registrars @ पण घेतात)
  4. TTL: default
GoDaddy new-record form: the note that CNAME records point a subdomain or alias to another domain name, then Type set to CNAME, an empty Name field, an empty Value field, a TTL drop-down, and the Add More Records, Save and Cancel buttons.

Console: GoDaddy मध्ये CNAME record add करताना: Type CNAME, Name मध्ये subdomain, Value मध्ये domain, मग Save.

Step 3. Save करा, मग प्रत्येक site साठी तेच करा: landing, scroll, animated.

Step 4. आता न वापरलेले जुने records delete करा, म्हणजे list साफ राहते.

आता तुमचे records असे दिसतात:

Type    Name       Value
A       @          PUBLIC_IP
CNAME   landing    example.com
CNAME   onepage    example.com
CNAME   scroll     example.com
CNAME   animated   example.com
एका server आणि त्याच्या subdomains साठी DNSrecords Type Name → Value A @ → PUBLIC_IP CNAME music → example.com CNAME video → example.com CNAME photo → example.com A record @ म्हणजे domain स्वतः. तो IP address कडे point करतो. CNAME record Subdomain दुसऱ्या नावाकडे point करतो, इथे domain कडे, ज्याच्याकडेIP आहे.

Figure 8. Domain साठी एक A record, प्रत्येक subdomain साठी एक CNAME.

13. कसं: website templates server वर आणा

आपल्याला चार वेगवेगळ्या sites पाहिजेत. सोपा मार्ग म्हणजे अनेक HTML templates असलेला public GitHub repository, प्रत्येक template एका folder मध्ये.

Step 1. Nginx च्या folder मध्ये जा:

cd /usr/share/nginx

Step 2. Repository ZIP म्हणून download करा (link Code > Download ZIP वरून copy करा). हा folder root चा आहे म्हणून sudo लागतो:

sudo wget https://github.com/OWNER/REPO/archive/refs/heads/master.zip

ZIP मध्ये फक्त files असतात, project चा history नाही; repository आणायचा दुसरा मार्ग म्हणजे git clone.

Step 3. Unzip करा आणि folder ला छोटं नाव द्या:

sudo unzip master.zip
sudo mv REPO-master websites
cd websites

Step 4. Folders ची list बघा:

[ec2-user@ip-172-31-xx-xx websites]$ ls
'Animated Template'  'Landing Page Template'  'One Page Template'  'Scroll Template'

Rename का करायचं. Spaces असलेली नावं commands मध्ये आणि nginx.conf मध्ये त्रासदायक. Shell मध्ये space शब्द वेगळे करतो, म्हणून प्रत्येक space आधी backslash (\) म्हणजे "हा space नावाचाच भाग आहे". Quotes पण तेच काम करतात.

Step 5. प्रत्येक folder ला एका छोट्या शब्दाचं नाव द्या:

sudo mv Animated\ Template animated
sudo mv Landing\ Page\ Template landing
sudo mv "One Page Template" onepage
sudo mv Scroll\ Template scroll

Tip: पहिली अक्षरं type करून Tab दाबा; shell backslashes स्वतः टाकतो.

Step 6. Check करा:

[ec2-user@ip-172-31-xx-xx websites]$ ls
animated  landing  onepage  scroll
[ec2-user@ip-172-31-xx-xx websites]$ ls landing
index.html  ...

प्रत्येक folder मध्ये स्वतःचं index.html आहे. मागच्या chapter सारखं, ज्या folder मध्ये index.html आहे तोच site चा folder.

14. कसं: प्रत्येक subdomain साठी एक Nginx server block

काय. nginx.conf मध्ये प्रत्येक server { ... } block म्हणजे एक website. कुठला block ते दोन settings (directives) ठरवतात:

  1. server_name: हा block कुठल्या नावाला उत्तर देतो.
  2. root: तो कुठला folder serve करतो.

Classroom line

Notice that inside the server block there's something called server_name.

Nginx block कसा निवडतो. Browser मागितलेलं नाव request सोबत पाठवतो. Nginx ते प्रत्येक server_name शी जुळवून बघतो. एखादं match झालं तर त्या block चा root serve होतो. कुठलंच match झालं नाही, उदा. नुसत्या IP ने आलेली visit, तर default block उत्तर देतो; Amazon Linux च्या nginx.conf मध्ये तो पहिला server block.

Classroom line

Whenever Nginx can't match the name, it simply goes into the first server block it sees.

Nginx site कशी निवडतो: मागितलेलं नाव vsserver_name Browser मागतो http://landing.example.com/ नाव request सोबत जातं (Host header मध्ये). server_name _; root /usr/share/nginx/html; Bare IP शी कुठलंच server_name match होत नाही, म्हणूनdefault (पहिला) block उत्तर देतो. server_name landing.example.com; root .../websites/landing; landing.example.com दुसऱ्या block शी match: Nginx landingfolder serve करतो. server_name onepage.example.com; root .../websites/onepage; onepage.example.com त्याच्या block शी match: onepage folder. server_name scroll.example.com; root .../websites/scroll; scroll.example.com त्याच्या block शी match: scroll folder.

Figure 9. Animation: प्रत्येक नाव स्वतःच्या server_name शी match होतं आणि त्याला स्वतःचा folder मिळतो; नुसत्या IP ला default (पहिला) block.

Step 1. Settings file उघडा:

sudo nano /etc/nginx/nginx.conf

Step 2. आधीचा server block (server_name _; असलेला) तसाच राहू द्या. त्याच्या closing } खाली, पण http { ... } block च्या आतच, प्रत्येक site साठी एक block add करा:

server {
    listen       80;
    listen       [::]:80;
    server_name  landing.example.com;
    root         /usr/share/nginx/websites/landing;
}

server {
    listen       80;
    listen       [::]:80;
    server_name  onepage.example.com;
    root         /usr/share/nginx/websites/onepage;
}

scroll आणि animated साठी पण असेच add करा. Block ते block फक्त server_name आणि root बदलतात. Ctrl+O, Enter ने save करा, मग Ctrl+X.

nano editing nginx.conf: a server block with listen 80, listen [::]:80, server_name scroll.example.com and root /usr/share/nginx/websites/scroll.

Console: nginx.conf मधला एक server block: port 80 वर listen, server_name मध्ये subdomain, root मध्ये त्या site चा folder.

Classroom line

Okay, all four server blocks are done.

Step 3. File test करा, मग reload:

[ec2-user@ip-172-31-xx-xx ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[ec2-user@ip-172-31-xx-xx ~]$ sudo service nginx reload
Redirecting to /bin/systemctl reload nginx.service

reload आधीपासून चालू असलेल्या sites बंद न करता नवीन settings लागू करतो.

15. प्रत्येक subdomain test करा

Step 1. प्रत्येक address उघडा:

  1. http://landing.example.com/ वर landing template दिसतं.
  2. http://onepage.example.com/ वर one-page template.
  3. http://scroll.example.com/ वर scroll template.
  4. http://animated.example.com/ वर animated template.
  5. http://PUBLIC_IP/ वर अजून /usr/share/nginx/html मधलं default page.

एखादं उघडत नसेल तर:

  1. CNAME add केल्यावर काही मिनिटं (TTL) थांबा, मग परत try करा.
  2. CNAME च्या Name मध्ये फक्त subdomain आहे ना बघा (landing, landing.example.com नाही).
  3. त्या block मधले server_name आणि root check करा, आणि folder मध्ये index.html आहे ना ते.
  4. परत sudo nginx -t चालवा आणि reload करा.

Example 6: पाच sites, एक bill. पाच नावं (domain आणि चार subdomains), default धरून पाच server blocks, आणि पाच DNS records (एक A, चार CNAME), सगळं एकाच EC2 server वर.

16. Capital letters: domain ला फरक पडत नाही, path ला पडू शकतो

प्रश्न: LANDING.Example.COM चालेल का? हो. Web address चा domain भाग case-sensitive नाही; browsers DNS ला विचारण्याआधी तो small letters मध्ये करतात.

पण path असू शकतो. Domain नंतरचा भाग म्हणजे server वरचा file path. Linux server वर /Images/Logo.png आणि /images/logo.png या दोन वेगळ्या files आहेत, म्हणून एक capital letter चुकलं तर 404 Not Found.

सवय. Folder आणि file नावांसाठी small letters वापरा, आणि links files च्या नावाप्रमाणे अगदी तशाच type करा.

Capital letters: domain भागाला फरक पडत नाही, pathला पडू शकतो http://Landing.Example.COM   /Images/Logo.png Domain भाग Case-sensitive नाही. LANDING.example.com आणि landing.example.comएकाच site वर जातात; browsers ते small letters मध्ये करतात. Domain नंतरचा path Case-sensitive असू शकतो. Linux server वर /Images/Logo.png आणि/images/logo.png वेगवेगळ्या files आहेत.

Figure 10. Domain भाग case-sensitive नाही; त्यानंतरचा path असू शकतो.

17. पूर्ण flow एका page वर

  1. Domain घ्या; owner आणि admin तुमच्या स्वतःच्या account मध्ये ठेवा.
  2. A record: @ -> PUBLIC_IP.
  3. sudo yum install nginx -y, sudo service nginx start; http://example.com/ उघडा.
  4. प्रत्येक site साठी: CNAME name -> example.com.
  5. Templates sudo wget, sudo unzip, folders ना छोटी नावं.
  6. प्रत्येक subdomain साठी server_name आणि root असलेला एक server block.
  7. sudo nginx -t, sudo service nginx reload, प्रत्येक subdomain उघडा.
  8. Stop आणि start ने IP बदलतो: A record update करा, किंवा Elastic IP वापरा (पुढचा chapter).

18. घरी करून बघा

Try at home

Task 1: एक domain

  1. Practice साठी स्वस्त domain घ्या, किंवा आधीपासून असलेलं वापरा.
  2. @ चा A record तुमच्या EC2 public IP कडे add करा.
  3. Nginx install आणि start करा, मग तुमचं domain आणि hello.html test page उघडा.

Task 2: तीन subdomains

  1. तुमच्या domain कडे point करणारे तीन CNAME records add करा.
  2. /usr/share/nginx/websites/ खाली तीन templates download करा, folders ना छोटी नावं द्या.
  3. तीन server blocks add करा, sudo nginx -t ने test करा, reload करा, आणि तिन्ही उघडा.
  4. एक site domain मध्ये capital letters टाकून उघडा, मग file path मध्ये चुकीचं capital letter टाकून 404 बघा.

झाल्यावर instance terminate करा, आणि A record delete करा म्हणजे तुमचं domain तुमच्याकडे नसलेल्या IP कडे point करत राहणार नाही.

Recap

थोडक्यात

  1. लोकांना नावं लक्षात राहतात, IPs नाही. DNS नावाचा IP करतो: तुमचा computer resolver ला विचारतो, resolver domain चे records वाचतो.
  2. Registrars (GoDaddy, Hostinger, Amazon Route 53 आणि बाकी) domains 1 ते 10 वर्षांसाठी register करतात; cart मध्ये term, add-ons आणि renewal price check करा.
  3. Owner आणि admin details business owner कडेच; developers ना फक्त limited access.
  4. A record @ -> PUBLIC_IP domain तुमच्या server कडे point करतो. sudo service nginx start एक निरुपद्रवी Redirecting to /bin/systemctl line दाखवतो.
  5. Stop आणि start ने नवीन public IP मिळतो, आणि DNS changes ला वेळ (TTL) लागतो; Elastic IP हा उपाय.
  6. Virtual hosting खर्च वाचवायला अनेक sites एका server वर ठेवतं.
  7. .com हा TLD, example.com domain, onepage.example.com subdomain; CNAME records subdomains ना domain कडे point करतात.
  8. प्रत्येक site साठी एक Nginx server block: server_name block निवडतो, root folder देतो; काहीच match नसेल तर default block उत्तर देतो.
  9. Domain case-sensitive नाही; path असू शकतो.

सराव Tasks

या scenario बद्दल

Seoul Beauty Lab हा सोल मधला सौंदर्य प्रसाधने व्यवसाय आहे. Ji-woo Park त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे KRW मध्ये मोजले जातात आणि AWS resources ap-northeast-2 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.

0 / 12

सोपं बदलानंतर service restart करा

का: Config बदल service restart/reload नंतरच लागू होतात.

काय करायचं: nginx service restart करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Service चालू आहे का ते पाहा

का: Site बंद असेल तर आधी web server चालू आहे का ते पाहा.

काय करायचं: httpd service चं status दाखवा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Ubuntu वर package install करा

का: Ubuntu apt वापरतं. Package नावं वेगळी: Ubuntu वर Apache म्हणजे apache2.

काय करायचं: Ubuntu वर apache2 package confirm न विचारता install करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Amazon Linux वर package install करा

का: Amazon Linux 2023 वर dnf हा package manager. -y आपोआप yes देतो.

काय करायचं: Amazon Linux 2023 वर httpd package confirm न विचारता install करा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

सोपं Hosted zones दाखवा

का: Records बदलायला zone ID लागतो.

काय करायचं: Account मधले सगळे hosted zones दाखवा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

सोपं MySQL चा port

का: DB security group ने फक्त हा port app साठी उघडावा.

काय करायचं: Seoul Beauty Lab चं app RDS MySQL शी बोलतं. DB SG ने कोणता port allow करावा?

कसं करायचं:
  1. Task मधले numbers लिहून घ्या.
  2. कागदावर step by step काढा.
  3. Box मध्ये फक्त final उत्तर लिहा.
  4. Check answer दाबा.

सोपं Database endpoint शोधा

का: App endpoint नावाने connect होतं, IP ने नाही.

काय करायचं: DB instance seoulbeauty-db describe करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम nginx config test करा

का: Restart मुळे site बंद पडण्याआधी test चुका पकडतो.

काय करायचं: nginx configuration files मधल्या चुका तपासा.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Service आत्ता व boot ला सुरू करा

का: enable reboot नंतर सुरू करतो; --now आत्ताच सुरू करतो.

काय करायचं: nginx service enable करा व लगेच सुरू करा, एका command ने.

कसं करायचं:
  1. हे काम करणारा Linux command शोधा.
  2. Task ला लागणारे options (उदा. -r, -h) जोडा.
  3. File नावं, folders किंवा users योग्य क्रमाने लिहा.
  4. System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.

मध्यम Port 80 सगळ्यांसाठी उघडा

का: Security group HTTP allow करत असेल तरच visitors website पाहू शकतात.

काय करायचं: Security group sg-01c51c3c10204c3b2 वर 0.0.0.0/0 कडून inbound TCP port 80 allow करा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

मध्यम Hosted zone बनवा

का: Hosted zone तुमच्या domain चे सगळे DNS records ठेवतो.

काय करायचं: seoulbeauty.kr साठी public hosted zone बनवा, caller reference seoulbeauty-2026-01.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

अवघड DNS record बनवा/update करा

का: UPSERT record बनवतो किंवा आधी असल्यास update करतो.

काय करायचं: change.json मधले record बदल hosted zone Z0123456789ABCDEFGHIJ ला लावा.

कसं करायचं:
  1. Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
  2. aws लिहा, मग service चं नाव, मग operation (action शब्द).
  3. प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
  4. Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.

उजळणी, तुलना आणि मुलाखत cards

हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.

उजळणी card: DNS कसं काम करतं. लोकांना नावं आठवतात, 13.2.1.9 सारखे IPs नाही. DNS म्हणजे internet ची phone book: domain name चं IP address करतं. Registrar कडे domain घ्या, मग त्याच्या DNS settings मध्ये records add करा. उत्तर तपासा:
उजळणी card: DNS कसं काम करतं · PNG download करा
उजळणी card: EC2 साठी A record. Site नावाने उघडायला domain server कडे point हवा. A record नावाला IPv4 address शी जोडतो. @ म्हणजे root domain. DNS settings › Add record › Type A › Host @ › Value = EC2 public IP. Record:
उजळणी card: EC2 साठी A record · PNG download करा
उजळणी card: DNS बदलांना वेळ का लागतो: TTL. IP बदलल्यानंतरही काही users जुन्या server कडे जातात. TTL = resolvers जुनं उत्तर cache मध्ये किती seconds ठेवू शकतात. ठरवलेल्या बदलाआधी TTL कमी करा; Elastic IP वापरा म्हणजे IP बदलणारच नाही. TTL 3600 = बदलानंतर 1 तासापर्यंत जुनी उत्तरं.
उजळणी card: DNS बदलांना वेळ का लागतो: TTL · PNG download करा
उजळणी card: Nginx मध्ये virtual hosting. प्रत्येक छोट्या site साठी एक server म्हणजे पैसे वाया. Virtual hosting एकाच server वरून अनेक sites देतं, browser ने मागितलेल्या नावावरून. प्रत्येक site साठी एक server block, स्वतःचं server_name आणि root. Subdomain चा block:
उजळणी card: Nginx मध्ये virtual hosting · PNG download करा
तुलना: A record vs CNAME record. A record: नावाला IPv4 address शी जोडतो. CNAME record: नावाला दुसऱ्या नावाशी जोडतो.
तुलना: A record vs CNAME record · PNG download करा
तुलना: Domain vs Subdomain. Domain: Registrar कडून घेतलेलं नाव, उदा. example.com. Subdomain: Domain च्या पुढचं नाव, उदा. blog.example.com.
तुलना: Domain vs Subdomain · PNG download करा
मुलाखत card: Browser मध्ये domain name टाकल्यावर काय होतं?. Browser DNS कडे IP मागतो, मग त्या IP ला port 80 किंवा 443 वर connect होतो. Servers IP ने सापडतात; नावं माणसांसाठी. example.com › 13.2.1.9 › port 443 वर GET /.
मुलाखत card: Browser मध्ये domain name टाकल्यावर काय होतं? · PNG download करा
मुलाखत card: A record vs CNAME: कधी कोणता?. A नावाला IP कडे. CNAME नावाला दुसऱ्या नावाकडे. Target चा IP बदलला तरी CNAME त्याच्या मागे जातो. @ A 13.2.1.9; www CNAME example.com.
मुलाखत card: A record vs CNAME: कधी कोणता? · PNG download करा
मुलाखत card: Stop-start नंतर site नावाने उघडत नाही. का?. Public IP बदलला, पण A record मध्ये जुना IP आहे. Stop केल्यावर dynamic public IPs release होतात. Elastic IP वापरा आणि एकदाच A record मध्ये टाका.
मुलाखत card: Stop-start नंतर site नावाने उघडत नाही. का? · PNG download करा
मुलाखत card: URL मध्ये capital letters फरक पाडतात का?. Domain मध्ये नाही; Linux servers वर path मध्ये बहुतेक हो. DNS case ignore करतो, पण Linux file names case-sensitive. EXAMPLE.com चालतं; /About.html ≠ /about.html.
मुलाखत card: URL मध्ये capital letters फरक पाडतात का? · PNG download करा

अजून cards: Ravi Sir's Cards.