Ravindra BagaleCourses & study guides English

EC2 वरच्या HTML Website मध्ये Images आणि Videos कसे add करायचे

मागच्या chapter मध्ये आपण Apache install केला आणि आपलं पहिलं page port 80 वर live झालं. आता खरी pages बनवायची. आधी server जे उत्तर देतो ते (HTTP status code) वाचायला शिकू, आणि /var/www/html मधले folders URLs मध्ये कसे बदलतात ते बघू. मग page बनवण्यापुरतं HTML शिकू, page वर तीन वेगवेगळ्या पद्धतीने images ठेवू, तुटलेली image debug करू, आणि शेवटी एक video आणि एक YouTube video add करू. Server start करा, Apache start करा, आणि प्रत्येक command माझ्यासोबत type करा.

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

  • HTTP status codes: 200, 301, 302, 401, 403, 404, 500 आणि त्यांच्या families
  • index.html नसेल तेव्हा Apache काय दाखवतो
  • Browser मध्ये DevTools ने status codes बघणं
  • /var/www/html खालचे folders URL paths कसे बनतात
  • Stop आणि start नंतर Apache परत start करणं, आणि sudo systemctl enable httpd
  • HTML basics: tags, head आणि body, h1 ते h6, p, li आणि img
  • width ने image छोटी-मोठी करणं
  • Page वर image आणायचे तीन मार्ग: दुसऱ्या site ची URL, sudo wget, आणि scp
  • View Page Source आणि DevTools ने तुटलेली image debug करणं
  • <video controls> ने स्वतःचा video दाखवणं
  • Share › Embed ने YouTube video embed करणं

1. Cloud engineer ला HTML आणि URLs का लागतात

का. Websites तुम्ही design करणार नाही; ते developers करतात. पण तुम्ही चालवत असलेल्या server वर एखादं page किंवा image उघडत नसेल, तर ticket तुमच्याकडे येतं. Users सांगतात "site बिघडलीय", "line 12 मध्ये typo आहे" असं कोणी सांगत नाही. कारण शोधायला तुम्हाला URL, status code आणि server ने पाठवलेलं HTML वाचता आलं पाहिजे.

Classroom line

So working on URLs is our job.

काय. Web page वरच्या प्रत्येक गोष्टीची स्वतःची URL असते:

  1. Page स्वतः, उदाहरणार्थ http://PUBLIC_IP/photo.html.
  2. त्यावरची प्रत्येक image, उदाहरणार्थ http://PUBLIC_IP/beach.jpg.
  3. प्रत्येक video, icon, CSS file आणि JavaScript file.

Browser प्रत्येक गोष्ट वेगळी मागतो, आणि प्रत्येकीला server कडून वेगळं उत्तर मिळतं.

समजा आपण YouTube आहोत. त्याच्या pages वर दोन प्रकारच्या files असतात:

  1. Application files: YouTube चा logo, Home, Shorts आणि Subscriptions चे icons, CSS आणि JavaScript. या YouTube ची team site सोबतच देते, आणि त्या सगळ्यांसाठी सारख्याच असतात.
  2. User-generated content: users दर मिनिटाला upload करतात ते videos आणि thumbnails.

दोन्ही URLs वरून serve होतात, आणि दोन्ही तुटू शकतात.

2. HTTP status codes: server ने काय उत्तर दिलं

का. Web server च्या प्रत्येक उत्तराची सुरुवात तीन आकडी number ने होते, त्याला status code म्हणतात. Request चाललं की नाही, आणि नसेल तर problem कोणाच्या बाजूला आहे, हे एका नजरेत कळतं. Interview मध्ये पण हा आवडता प्रश्न आहे.

काय. पहिला आकडा family सांगतो:

  1. 2xx: success. 200 OK म्हणजे page सापडलं आणि पाठवलं.
  2. 3xx: redirect. Page दुसरीकडे आहे आणि browser ला तिकडे पाठवलं जातं, phone वरच्या call forwarding सारखं. 301 Moved Permanently म्हणजे कायमचं हललं; 302 Found म्हणजे तात्पुरतं हललं.
  3. 4xx: request मध्ये problem.
    • 401 Unauthorized: आधी login करावं लागेल.
    • 403 Forbidden: server ला request कळली, पण तो ते तुम्हाला देणार नाही.
    • 404 Not Found: असं page च नाही.
  4. 5xx: server वर problem. 500 Internal Server Error हा server-side चा general error; 503 Service Unavailable म्हणजे server आत्ता request handle करू शकत नाही.

Classroom line

Just as we forward calls, a page can be forwarded too.

HTTP status codes: पहिला आकडा familyसांगतो 2xx Success 200 OK page सापडलं, पाठवलं 3xx Redirect 301 कायमचं हललं 302 तात्पुरतं हललं 4xx Request मध्ये problem 401 आधी login करा 403 परवानगी नाही 404 असं page नाही 5xx Server वर problem 500 server-side error 503 server available नाही 2xx आणि 3xx: सगळं ठीक. 4xx: URL, file चं नाव किंवाlogin बघा. 5xx: server बघा.

Figure 1. पहिला आकडा family सांगतो: 2xx success, 3xx redirect, 4xx request मध्ये problem (401 आधी login, 403 परवानगी नाही, 404 असं page नाही), 5xx server वर problem.

Example 1: तुमच्या server वरच्या तीन URLs. समजा /var/www/html मध्ये फक्त index.html आहे:

  1. http://PUBLIC_IP/ ला 200 OK मिळतो आणि index.html दिसतं.
  2. http://PUBLIC_IP/index.html ला तेच page, हेही 200 OK.
  3. http://PUBLIC_IP/contact.html ला 404 Not Found, कारण अशी file च नाही.

Example 2: index.html च नसेल तर. index.html delete किंवा rename करा आणि http://PUBLIC_IP/ परत उघडा. Amazon Linux वर Apache आता स्वतःचं test page ("It works!") दाखवतो, आणि त्या उत्तराचा status code असतो 403 Forbidden. Apache folder मधल्या files ची list दाखवत नाही; त्याऐवजी test page दाखवतो, म्हणजे "web server चालू आहे, पण अजून home page नाही".

Classroom line

If your server has no index.html, the answer is 403 Forbidden.

हा code तुम्ही server वर curl ने बघू शकता:

[ec2-user@ip-172-31-xx-xx ~]$ curl -s -o /dev/null -w "%{http_code}\n" http://localhost/
403

-o /dev/null page फेकून देतो आणि -w "%{http_code}\n" फक्त status code print करतो. index.html परत ठेवा, मग तीच command 200 print करते.

3. Browser मध्ये status codes बघणं: DevTools

का. एक page म्हणजे खूप files. एखादी image नसली तरी page उघडतं, म्हणून प्रत्येक file चं उत्तर बघायचा मार्ग पाहिजे.

कसं.

  1. Page Chrome, Edge किंवा Firefox मध्ये उघडा.
  2. Page वर कुठेही right-click करून Inspect निवडा (किंवा F12 दाबा).
  3. Network tab वर click करा.
  4. Page reload करा (F5).
  5. Page load करत असलेली प्रत्येक file एका line मध्ये दिसते. Status column मध्ये तिचा code दिसतो: 200, 404 वगैरे.

Example 3: तुम्हाला काय दिसेल.

  1. तुमच्या स्वतःच्या छोट्या page वर: HTML file ची एक line आणि प्रत्येक image ची एक, सगळ्या 200.
  2. मोठ्या site वर, समजा Instagram: डझनभर lines येतात आणि येतच राहतात, कारण page background मध्ये files आणि data load करतच असतं.
  3. दुसऱ्यांदा reload केल्यावर 304 Not Modified दिसू शकतो: browser कडे आधीच fresh copy होती, म्हणून server ने file परत पाठवली नाही.

4. /var/www/html खालचे folders URL paths बनतात

का. खऱ्या site वर खूप pages आणि images असतात. सगळं एकाच folder मध्ये ठेवलं तर गोंधळ होतो, म्हणून folders बनवतो. Server वरचा folder browser मध्ये address म्हणून कसा येतो ते माहीत पाहिजे.

काय. /var/www/html हा तुमच्या website चा root आहे. URL मध्ये IP नंतर जे काही येतं, तो त्या folder च्या आतला path असतो:

  1. /var/www/html/index.html म्हणजे http://PUBLIC_IP/.
  2. /var/www/html/about.html म्हणजे http://PUBLIC_IP/about.html.
  3. /var/www/html/myphotos/gallery.html म्हणजे http://PUBLIC_IP/myphotos/gallery.html.
  4. /var/www/html/myphotos/images/beach.jpg म्हणजे http://PUBLIC_IP/myphotos/images/beach.jpg.
/var/www/html खालचा प्रत्येक folder URLचा भाग बनतो /var/www/html/ ├── index.html ├── about.html └── myphotos/ ├── gallery.html └── images/ └── beach.jpg Browser मध्ये काय type करायचं http://PUBLIC_IP/ http://PUBLIC_IP/about.html http://PUBLIC_IP/myphotos/gallery.html http://PUBLIC_IP/myphotos/images/beach.jpg (file चं नाव नसेल तर index.html जातं) /var/www/html/index.html हे home page:http://PUBLIC_IP/ /var/www/html मधली file: तिचं नाव IP च्या लगेच नंतर. myphotos folder मधली file: आधी folder चं नाव, मग file. Folder च्या आत folder: सगळे folders क्रमाने, / नेवेगळे.

Figure 2. Animation: /var/www/html खालची प्रत्येक file आणि बाजूला तिची URL. Folders ची नावं IP आणि file च्या नावाच्या मध्ये, त्याच क्रमाने, / ने वेगळी येतात.

Example 4: folder चं नाव राहिलं तर. gallery.html ही myphotos च्या आत आहे, म्हणून http://PUBLIC_IP/gallery.html ला 404 Not Found येतो. Apache /var/www/html/gallery.html शोधतो, आणि अशी file नाही. URL मध्ये folder चं नाव पाहिजेच.

कसं. दोन pages असलेला services folder बनवूया:

Step 1. Web root मध्ये जा:

cd /var/www/html

हा folder root चा आहे, म्हणून प्रत्येक बदलाला sudo लागतो:

sudo mkdir services
sudo nano services/service1.html

Step 2. <h1>Service 1</h1> type करा, मग Ctrl+X, Y, Enter ने save करा.

Step 3. services/service2.html पण तशीच बनवा, <h1>Service 2</h1> टाकून.

Step 4. http://PUBLIC_IP/services/service1.html आणि http://PUBLIC_IP/services/service2.html उघडा.

Classroom line

Make a folder inside html, make a couple of files in it, then open them in the browser.

/var/www/html च्या बाहेरचं page कधीच serve होत नाही. Home folder (/home/ec2-user) मध्ये बनवलेल्या file ला URL कशीही type केली तरी 404 च येतो.

Classroom line

Your page shows only when it is in the html directory, otherwise it won't.

5. Stop आणि start नंतर: Apache आणि public IP

का. पैसे वाचवायला practice संपल्यावर तुम्ही instance stop करता. दुसऱ्या दिवशी start केल्यावर site उघडत नाही. दोन गोष्टी बदललेल्या असतात.

काय.

  1. Apache बंद असतो. तुम्ही सांगितलं नसेल तर server start झाल्यावर Apache start होत नाही.
  2. Public IP नवीन असतो. Elastic IP नसलेल्या instance ला प्रत्येक start ला नवीन public IPv4 address मिळतो.

Classroom line

When the server was stopped, Apache stopped too, so we have to start it again.

कसं.

Step 1. EC2 console मध्ये instance start करा आणि त्याचा नवीन Public IPv4 address copy करा.

Step 2. नवीन IP वापरून SSH ने connect करा.

Step 3. Apache start करा:

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

दुसरी line normal आहे. Amazon Linux वर जुनी service command काम systemctl कडे देते (services सांभाळणारं tool), आणि तसं सांगते.

Step 4. Linux ला सांगा की प्रत्येक boot ला Apache start कर. हे एका server वर एकदाच चालवायचं:

[ec2-user@ip-172-31-xx-xx ~]$ sudo systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

Step 5. http://NEW_PUBLIC_IP/ उघडा.

Classroom line

So Apache starts on its own while the server boots.

Server stop करून start केल्यावर Enable न करता 1. Server start होतो. 2. Apache बंदच राहतो. 3. Site उघडत नाही. 4. प्रत्येक वेळी चालवायचं: sudo service httpd start Enable करून (एकदाच) sudo systemctl enable httpd 1. Server start होतो. 2. Apache आपोआप start होतो, प्रत्येक boot ला. 3. Site चालू. दोन्हीकडे Stop आणि start नंतर public IP बदलतो. नवीन IP EC2 console मधून copy करा. start = Apache आत्ता चालू करा. enable =प्रत्येक boot ला Apache चालू करा. नवीनserver वर दोन्ही वापरा.

Figure 3. start ने Apache आत्ता चालू होतो; enable ने प्रत्येक boot ला. दोन्हीकडे, stop आणि start नंतर नवीन public IP copy करा.

Handwritten board with two lines: sudo service httpd start, and below it sudo systemctl enable httpd.

Whiteboard: reboot नंतरच्या दोन commands: sudo service httpd start, आणि प्रत्येक boot साठी एकदाच sudo systemctl enable httpd.

Ravindra Bagale's Tip

Instance start किंवा stop करताना EC2 console विचित्र errors दाखवत असेल, तर तुमच्या computer चं घड्याळ check करा. AWS कडे जाणाऱ्या requests वर वेळेचा stamp असतो, आणि घड्याळ खूप पुढे-मागे असेल तर त्या fail होतात. Windows वर Settings › Time & language › Date & time उघडा आणि Sync now वर click करा.

6. HTML basics: tags, head आणि body

का. Pages developers देतात, पण तुम्हाला एखादं page उघडून वाचता आलं पाहिजे, आणि एखादी line, उदाहरणार्थ image चा address, न बिघडवता बदलता आली पाहिजे.

काय. HTML angle brackets मधल्या tags ने लिहितात:

  1. Opening tag: <h1>.
  2. आतला content.
  3. Slash असलेला closing tag: </h1>.

बहुतेक tags असे जोडीने येतात. काही tags ना content नसतो आणि closing tag पण नसतो. <img> त्यातलाच एक: <img src="beach.jpg"> लिहिलं की झालं.

<html> च्या आत page चे दोन भाग असतात:

  1. <head>: page बद्दलची माहिती. Browser tab वर दिसणारं title, tab वरचा छोटा icon, आणि CSS आणि JavaScript files च्या links. हे page च्या आत दिसत नाही.
  2. <body>: जे दिसतं ते: headings, text, images, videos.

समजा आपण YouTube आहोत. Tab वरचं "YouTube" आणि लाल icon head मधून येतात. Page वर दिसणारे videos, search bar आणि menu body मध्ये असतात.

सगळ्यात जास्त वापरायचे tags:

  1. <h1> ते <h6>: headings. h1 सगळ्यात मोठं, h6 सगळ्यात लहान.
  2. <p>: text चा एक paragraph.
  3. <li>: list मधला एक item, <ul> (bullets ची list) किंवा <ol> (numbers ची list) च्या आत.
  4. <img>: image.

आणि HTML सोबत ऐकू येणारे दोन शब्द:

  1. CSS म्हणजे page छान दिसावं म्हणून लिहिलेला code: रंग, fonts, spacing, layout.
  2. JavaScript म्हणजे page काहीतरी करावं म्हणून लिहिलेला code: उघडणारे menus, react करणारी buttons.

Classroom line

What does CSS stylesheet mean? It's code written to make your page look attractive and stylish.

Example 5: एक पूर्ण छोटं page.

<html>
<head>
  <title>Dubai</title>
</head>
<body>
  <h1>Welcome to Dubai</h1>
  <h2>Come and see the desert</h2>
  <p>Three days, two nights.</p>
  <ul>
    <li>Desert safari</li>
    <li>City tour</li>
  </ul>
</body>
</html>
  1. Browser tab वर Dubai दिसतं.
  2. Page वर एक मोठं heading, एक लहान heading, text ची एक line आणि दोन bullets ची list दिसते.
HTML page चे दोन भाग: head आणि body <html> <head> <title>Dubai</title> </head> <body> <h1>Welcome to Dubai</h1> <p>Come and see the desert.</p> <img src="beach.jpg"> </body> </html> head: page बद्दलची माहिती Tab चं title, tab वरचा छोटा icon, आणि CSS (दिसणं) आणि JavaScript (वागणं) च्या links. Page च्या आत दिसत नाही. body: जे दिसतं ते Headings h1 (सगळ्यात मोठं) ते h6 (सगळ्यात लहान), paragraphs p, list items li, images img, videos video. बहुतेक tags उघडतात आणि बंद होतात: <h1> ... </h1> img tag ला closing tag नसतो: <img src=...>

Figure 4. Head page बद्दल सांगतं (tab title, icon, CSS आणि JavaScript links); body म्हणजे जे दिसतं ते. बहुतेक tags उघडतात आणि बंद होतात; img ला closing tag नसतो.

7. Page वर तुमची पहिली image

का. जवळजवळ प्रत्येक page वर images असतात, आणि तुटलेली image हे सगळ्यात common tickets पैकी एक आहे.

काय. <img> tag image दाखवतो. त्याचा src attribute (source) सांगतो image कुठे आहे: पूर्ण URL, किंवा तुमच्याच server वरच्या file चं नाव.

कसं.

Step 1. Apache start करा आणि web root मध्ये जा:

sudo service httpd start
cd /var/www/html

Step 2. नवीन page बनवा:

sudo nano photo.html

Step 3. एक line type करा, image च्या address सोबत (तो कुठून मिळवायचा ते पुढच्या section मध्ये बघू):

<img src="https://IMAGE_ADDRESS">

Step 4. Ctrl+X, Y, Enter ने save करा.

Step 5. http://PUBLIC_IP/photo.html उघडा.

तेवढी एक line पुरेशी आहे. राहिलेले <html>, <head> आणि <body> browser स्वतः add करतो. खऱ्या page साठी मात्र Example 5 सारखी पूर्ण रचना लिहा.

Size बदलणं. Camera मधला photo बहुतेक वेळा screen पेक्षा रुंद असतो. width टाका:

<img src="https://IMAGE_ADDRESS" width="600">
  1. width="600" म्हणजे 600 pixels रुंद. फक्त आकडा लिहा.
  2. फक्त width दिली की browser height त्याच प्रमाणात बदलतो, म्हणून image चा आकार बिघडत नाही.
  3. Height साठी height="400" असंच चालतं. दोन्ही दिले तर image ताणलेली दिसू शकते.

Example 6: एकच image, दोन sizes.

  1. width शिवाय मोठा photo पूर्ण screen भरतो आणि बघायला scroll करावं लागतं.
  2. width="600" ने तो 600 pixels रुंद होतो आणि laptop screen वर मावतो.

8. Page वर image आणायचे तीन मार्ग

का. src ने अशा image file कडे point केलं पाहिजे जी browser download करू शकेल. ती file कुठे आहे यावर खूप फरक पडतो.

तुमच्या page वर image ठेवायचे तीन मार्ग दुसरी website https://…/beach.jpg 1. Browser त्यांच्या server वरून घेतो 1. दुसऱ्या site ची image URL वापरा (hotlinking). Quick, पण त्यांची bandwidth परवानगीशिवाय वापरते, copyright असूशकतो, आणि त्यांनी काढली की तुटते. तुमचा EC2 server ← sudo wget URL 2. sudo wget URL: server स्वतः file /var/www/html मध्येdownload करतो. मग img src फक्त beach.jpg. आता image तुमच्याच server वरून येते. तुमचा laptop → scp (SSH) beach.jpg 3. Laptop वरून scp: तुमची स्वतःची file SSH वरून uploadकरा. आधी home folder मध्ये copy करा, मग sudo mv ने /var/www/html मध्येहलवा. तुमचा EC2 server /var/www/html/ ├─ index.html └─ beach.jpg Visitor चा browser <img src=...>

Figure 5. Animation: 1. hotlinking मध्ये visitor चा browser image दुसऱ्या site वरून घेतो; 2. sudo wget ती तुमच्या server वर download करतो; 3. scp ने तुमची स्वतःची file laptop वरून upload होते. 2 आणि 3 मध्ये image तुमच्याच server वरून येते.

मार्ग 1: दुसऱ्या website ची image URL वापरा (hotlinking)

Image चा खरा address कसा मिळवायचा.

  1. Image असलेलं web page उघडा.
  2. Image वर right-click करा.
  3. Copy image address (Chrome, Edge) किंवा Copy Image Link (Firefox) निवडा.
  4. Check करा: address बहुतेक .jpg, .jpeg, .png किंवा .webp ने संपतो. नवीन tab मध्ये उघडा: फक्त image दिसली पाहिजे.

Search engine च्या image results मधली छोटी चित्रं बहुतेक वेळा चालत नाहीत. ती thumbnails असतात, जी बहुतेक results page च्याच आत साठवलेली असतात (त्यांचा address data: ने सुरू होतो), खऱ्या file ची link नसते. Image असलेली website उघडा आणि तिथून address copy करा.

Classroom line

Images straight from Google's results won't work... go to the website and copy the image link from there.

Hotlinking चे problems. Practice साठी हे quick आहे, पण:

  1. तुमच्या page चा प्रत्येक visitor image त्यांच्या server वरून download करतो, म्हणजे तुम्ही त्यांची bandwidth परवानगीशिवाय वापरता.
  2. Image वर copyright असू शकतो.
  3. त्यांनी image delete, rename किंवा हलवली, किंवा त्यांची site बंद पडली, तर तुमच्या page वर तुटलेली image दिसते.
  4. बऱ्याच sites हे block करतात: कुठलं page मागतंय ते check करतात आणि दुसऱ्या sites च्या pages ना image पाठवत नाहीत. मग तुटलेल्या image चा icon दिसतो.

Classroom line

They don't let others use their own images... that is, they block them.

चांगला मार्ग म्हणजे वापरायची परवानगी असलेली image तुमच्या स्वतःच्या server वर ठेवणं.

मार्ग 2: sudo wget ने server वर download करा

काय. wget web address (HTTP किंवा HTTPS) वरून file download करतो आणि current folder मध्ये save करतो. कुठलीही file: image, video, PDF, zip. Server ती थेट download करतो; ती तुमच्या laptop मधून जात नाही.

sudo का. /var/www/html root चा आहे. sudo शिवाय wget file download करतो, पण save करू शकत नाही:

[ec2-user@ip-172-31-xx-xx html]$ wget https://example.com/images/beach.jpg
...
beach.jpg: Permission denied

Cannot write to ‘beach.jpg’ (Permission denied).

कसं.

Step 1. मार्ग 1 सारखा image चा address copy करा.

Step 2. Web root मध्ये जा आणि आपण कुठे आहोत ते check करा:

[ec2-user@ip-172-31-xx-xx ~]$ cd /var/www/html
[ec2-user@ip-172-31-xx-xx html]$ pwd
/var/www/html

Step 3. sudo wget आणि address देऊन download करा. समजा address https://example.com/images/sunset-over-the-beach-1200x800.jpg आहे:

[ec2-user@ip-172-31-xx-xx html]$ sudo wget https://example.com/images/sunset-over-the-beach-1200x800.jpg
--...--  https://example.com/images/sunset-over-the-beach-1200x800.jpg
Resolving example.com (example.com)... ...
Connecting to example.com (example.com)|...|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: ... [image/jpeg]
Saving to: ‘sunset-over-the-beach-1200x800.jpg’
...
... ‘sunset-over-the-beach-1200x800.jpg’ saved [...]

200 OK हा section 2 मधला status code; [image/jpeg] सांगतो की तुम्हाला खरंच image मिळाली.

Step 4. Check करा, मग sudo mv ने छोटं नाव द्या:

[ec2-user@ip-172-31-xx-xx html]$ ls
index.html  photo.html  sunset-over-the-beach-1200x800.jpg
[ec2-user@ip-172-31-xx-xx html]$ sudo mv sunset-over-the-beach-1200x800.jpg beach.jpg
[ec2-user@ip-172-31-xx-xx html]$ ls
beach.jpg  index.html  photo.html

Step 5. आधी फक्त image उघडा: http://PUBLIC_IP/beach.jpg. दिसली तर file बरोबर serve होतेय.

Step 6. Page वर वापरा:

sudo nano photo.html

Line बदलून अशी करा:

<img src="beach.jpg" width="600">

Step 7. Save करा आणि http://PUBLIC_IP/photo.html refresh करा.

src="beach.jpg" मध्ये http:// नाही आणि folder पण नाही: याचा अर्थ "या page च्याच folder मधली beach.jpg file". Sub-folder मधल्या image साठी path लिहा, उदाहरणार्थ src="images/beach.jpg".

Example 7: नावानंतर ?काहीतरी असलेला address. बरेच image addresses beach.jpg?width=500 असे संपतात. wget हे सगळं file च्या नावात ठेवतो:

Saving to: ‘beach.jpg?width=500’

wget चालवायच्या आधी ? पासूनचं सगळं काढून टाका, किंवा नंतर sudo mv ने rename करा. ? नंतरचा भाग खरंच लागत असेल, तर पूर्ण address single quotes मध्ये टाका, कारण & सारख्या characters चा shell साठी वेगळा अर्थ असतो:

sudo wget 'https://example.com/beach.jpg?width=500&q=80'

मार्ग 3: laptop वरून scp ने upload करा

काय. scp दोन machines मध्ये SSH वरून files copy करतो, login साठी वापरता त्याच key ने. तो दोन्ही दिशांना चालतो, आणि परवानगी असलेल्या कुठल्याही folder सोबत: laptop ते server, server ते laptop, किंवा server ते server.

Classroom line

Downloading from the server means we can take any file from any directory.

wget आणि scp ची कामं वेगळी आहेत:

  1. wget server वर चालतो आणि web address वरून file ओढतो. File एखाद्या website वर असली पाहिजे.
  2. scp तुमच्या laptop वर चालतो आणि तुमची स्वतःची file SSH वरून copy करतो. File laptop वर कुठेही असू शकते.

कसं. समजा तुमचा photo beach.jpg आणि तुमची key mykey.pem laptop वर एकाच folder मध्ये आहेत.

Step 1. Laptop वर (PowerShell किंवा Terminal), त्या folder मध्ये, file ec2-user च्या home folder मध्ये copy करा:

scp -i mykey.pem beach.jpg ec2-user@PUBLIC_IP:/home/ec2-user/

Step 2. Server वर ती web root मध्ये हलवा. ec2-user थेट /var/www/html मध्ये लिहू शकत नाही, म्हणून या step ला sudo लागतो:

sudo mv /home/ec2-user/beach.jpg /var/www/html/

Step 3. http://PUBLIC_IP/beach.jpg उघडा, मग मार्ग 2 सारखं <img src="beach.jpg"> वापरा.

9. तुटलेली image debug करणं

का. Picture ऐवजी page वर तुटलेल्या image चा छोटा icon दिसतो. Page स्वतः load झालं (200), म्हणजे problem HTML च्या एका line मध्ये किंवा एका file मध्ये आहे.

Image तुटलेली दिसते? तीन checks मध्ये कारणशोधा 1. View Page Source Right-click › View Page Source (Ctrl+U). src ची value वाचा जीbrowser ला खरंच मिळाली. <img src="beach.jpg"> 2. Image ची URL उघडा http://PUBLIC_IP/beach.jpg Image दिसली: file ठीक, src मधलं spelling बघा. 404: नाव किंवा folder चुकला, ls ने check करा. 3. DevTools › Network F12, Network tab, reload. प्रत्येक file आणि तिचा status: 200 photo.html 404 Beach.jpg Linux मध्ये नावात capital-small फरक पडतो. नेहमीची कारणं: file /var/www/html मध्ये नाही, नावात typoकिंवा capital letter, किंवा दुसरी site hotlinking block करते.

Figure 6. तीन checks: View Page Source मध्ये img src वाचा, image ची URL थेट उघडा, आणि DevTools Network मध्ये प्रत्येक file चा status बघा.

कसं.

  1. Page वर right-click करून View Page Source (Ctrl+U) निवडा. Server कडून browser ला नक्की कोणतं HTML मिळालं ते दिसतं. <img> ची line शोधा आणि src वाचा.
  2. Image चा address एकटा उघडा, उदाहरणार्थ http://PUBLIC_IP/beach.jpg.
    • Image दिसली: file ठीक आहे; page मधल्या src मध्ये typo आहे.
    • 404 Not Found: URL सांगते तिथे file नाही. ls /var/www/html ने check करा.
  3. DevTools › Network उघडा आणि reload करा. Image च्या line मध्ये तिचा status code दिसतो.

Example 8: नेहमीची कारणं.

  1. Page किंवा image home folder मध्ये बनवली, /var/www/html मध्ये नाही.
  2. Capital letter: file beach.jpg आहे पण page मध्ये Beach.jpg. Linux मध्ये file च्या नावात capital-small फरक पडतो, म्हणून ती वेगळी file ठरते आणि 404 येतो.
  3. चुकीचं extension: file beach.jpeg आहे पण page मध्ये beach.jpg.
  4. तुम्ही copy केलेला address image बद्दलच्या web page चा आहे, image file चा नाही.
  5. Hotlinking, आणि दुसरी site ते block करते.

10. Page वर तुमचा स्वतःचा video

का. बऱ्याच sites ना images पुरत नाहीत: product demo, course intro, एखादं गाणं.

काय. <video> tag video file दाखवतो, आणि त्याच्या आतला <source> tag सांगतो file कुठे आहे आणि कुठल्या type ची आहे:

<video controls>
  <source src="myvideo.mp4" type="video/mp4">
</video>
  1. controls ने player ची buttons येतात: play, pause, volume आणि seek bar. ते नसेल तर browser फक्त स्थिर चित्र दाखवतो, buttons नाहीत.
  2. src="myvideo.mp4" म्हणजे file, इथे page च्याच folder मध्ये.
  3. type="video/mp4" browser ला सांगतो file कुठल्या प्रकारची आहे.
  4. </video> tag बंद करतो.

Classroom line

What does controls mean? We stop a video by pausing it, then resume it.

कसं.

Step 1. Video file /var/www/html मध्ये ठेवा, laptop वरून scp ने किंवा web address वरून sudo wget ने, अगदी image सारखं.

Step 2. छोटं नाव द्या: sudo mv <long-name>.mp4 myvideo.mp4.

Step 3. Page बनवा:

sudo nano video.html

वरच्या तीन lines type करा, मग save करा.

Step 4. http://PUBLIC_IP/video.html उघडा आणि play दाबा.

Video file चा address शोधणं. एखादं page थेट .mp4 file चालवत असेल, तर video वर right-click करून Copy video link निवडू शकता, किंवा DevTools › Network उघडा, Media filter वर click करा, reload करून play करा: list मध्ये .mp4 file दिसते.

तुमचे स्वतःचे videos वापरा, किंवा ज्यांची परवानगी आहे ते. Sample video फक्त practice साठी download केला, तर तो test server वरच ठेवा आणि नंतर delete करा. Video files मोठ्या असतात, आणि तुमचा server प्रत्येक visitor ला त्यांचा प्रत्येक byte पाठवतो.

11. YouTube video embed करणं

का. YouTube तुम्हाला download करून host करायला video file देत नाही. त्यापेक्षा चांगलं देतं: embed code. Video YouTube वरच राहतो, YouTube चा player तो चालवतो, आणि तुमचं page तो एका window मध्ये दाखवतं.

कसं.

  1. YouTube वर video उघडा.
  2. Video च्या खाली Share वर click करा.
  3. Embed वर click करा.
  4. Copy वर click करा. आता तुमच्याकडे <iframe> code आहे.
  5. Server वर: sudo nano video.html, तुमच्या <video> lines खाली code paste करा, आणि save करा.
  6. http://PUBLIC_IP/video.html refresh करा.

Classroom line

Once the ad is over, you see the Share button down here.

YouTube's Embed Video box with the iframe code: width 560, height 315, src https://www.youtube.com/embed/ and the video id, title YouTube video player, frameborder 0 and the allow list.

Whiteboard: YouTube वर Share › Embed केल्यावर iframe code मिळतो: width 560, height 315 आणि video चा embed address. तो तुमच्या .html file मध्ये copy करा.

Code असा दिसतो (VIDEO_ID म्हणजे त्या video चा स्वतःचा id):

<iframe width="560" height="315" src="https://www.youtube.com/embed/VIDEO_ID" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
  1. iframe म्हणजे तुमच्या page वरची एक window जी दुसरं page दाखवते, इथे YouTube चा player.
  2. width="560" height="315" ही त्या window ची size. ती बदलता येते.
  3. src हा या video चा YouTube embed address.
  4. allowfullscreen ने बघणाऱ्याला full screen करता येतं.

Example 9: एका page वर दोन videos. दोन embed codes एकाखाली एक paste करा, page वर दोन players दिसतात.

A web page with two YouTube players side by side, a song on the left and a movie trailer on the right, each showing its title and a Watch on YouTube button.

Whiteboard: EC2 server वरचं video.html, त्यावर दोन embedded YouTube players, प्रत्येकावर title आणि Watch on YouTube.

Video दाखवायचे दोन मार्ग तुमची स्वतःची video file: video tag <video controls> <source src="myvideo.mp4" type="video/mp4"> </video> .mp4 file /var/www/html मध्ये असते. controls ने play, pause, volume आणि seek bar येतात. controls नसेल तर: स्थिर चित्र, buttons नाहीत. Video चा प्रत्येक byte तुमचा server पाठवतो. YouTube video: iframe YouTube वर: Share › Embed › Copy <iframe width="560" height="315" src="https://www.youtube.com/embed/…" तुमच्या .html file मध्ये paste करा. Player आणि video YouTube वरून येतात; तुमचं page फक्त त्याची window दाखवतं. दोन iframes = page वर दोन videos. तुमचे स्वतःचे videos किंवा वापरायची परवानगीअसलेले वापरा. YouTube videos साठी नेहमीofficial embed code.

Figure 7. तुमची स्वतःची video file video controls आणि source सोबत, तुमचा server पाठवतो; YouTube video Share › Embed मधल्या iframe ने, YouTube चालवतो.

कुठल्याही YouTube video साठी नेहमी YouTube चाच embed code वापरा. तो download करून file तुमच्या server वर ठेवू नका.

12. काम झालं की: instance stop करा

का. Page कोणीही उघडत नसलं तरी चालू instance free-tier hours वापरत राहतो. Stop केल्याने तुमच्या files पुढच्या वेळेसाठी disk वर राहतात.

  1. EC2 console मध्ये तुमचा instance select करा.
  2. Instance state › Stop instance वर click करा.
  3. Confirm करायला Stop वर click करा.

पुढच्या वेळी section 5 लक्षात ठेवा: Apache start करा (किंवा enable केलेला ठेवा) आणि नवीन public IP वापरा.

13. पूर्ण flow एका ठिकाणी

  1. sudo service httpd start (आणि एकदाच: sudo systemctl enable httpd).
  2. cd /var/www/html.
  3. इथले folders URL paths बनतात: myphotos/gallery.html म्हणजे http://PUBLIC_IP/myphotos/gallery.html.
  4. Web वरची image: sudo wget URL, मग sudo mv long-name.jpg beach.jpg.
  5. Laptop वरची image: scp -i mykey.pem beach.jpg ec2-user@PUBLIC_IP:/home/ec2-user/, मग sudo mv ने /var/www/html मध्ये.
  6. Page: sudo nano photo.html मध्ये <img src="beach.jpg" width="600">.
  7. Video: <video controls>, आत <source src="myvideo.mp4" type="video/mp4">, आणि </video>.
  8. YouTube: Share › Embed › Copy, <iframe> paste करा.
  9. Check: प्रत्येक URL उघडा; 200 म्हणजे ठीक, 404 म्हणजे नाव किंवा folder चुकला; काही तुटलं तर View Page Source आणि DevTools › Network.

14. Hands-on lab: pages, folders, image आणि status codes

हा lab का. बहुतेक website tickets "page सापडत नाही" किंवा "image तुटलीय" अशी असतात. हा lab folder, page आणि image असलेली छोटी site बनवतो, आणि मग image मुद्दाम तोडतो, म्हणजे server च्या आतून 404 कसा दिसतो ते बघता येतं.

  1. Server start करा आणि Apache तपासा
    • Command: sudo service httpd status
    • काय दिसेल: enable केलं असेल तर active (running); नाहीतर sudo service httpd start चालवा.
    • Check करा: EC2 console मधून नवीन public IP copy करा.
    • का: Stop आणि start नंतर public IP बदलतो, आणि enable केलं असेल तरच Apache चालू असतो.
  2. Home page चा status code वाचा
    • Command: curl -s -o /dev/null -w "%{http_code}\n" http://localhost/
    • काय दिसेल: 200
    • Check करा: 2xx म्हणजे success.
    • का: -o /dev/null page टाकून देतो आणि -w फक्त status code print करतो, server चं एका number मधलं उत्तर.
  3. नसलेलं page मागा
    • Command: curl -s -o /dev/null -w "%{http_code}\n" http://localhost/nothere.html
    • काय दिसेल: 404
    • Check करा: 4xx म्हणजे request मध्ये प्रॉब्लेम.
    • का: 404 सांगतो की Apache ठीक आहे आणि file चं नाव किंवा path चुकलाय. Server नाही, URL बघायची.
  4. Photos साठी folder बनवा
    • Command: sudo mkdir -p /var/www/html/myphotos/images
    • काय दिसेल: काहीच नाही.
    • Check करा: ls /var/www/html/myphotos → images
    • का: /var/www/html खालचा प्रत्येक folder URL चा भाग होतो: हा http://PUBLIC_IP/myphotos/. Folders वाढणारी site नीट ठेवतात.
  5. Server वर image download करा
    • Command: cd /var/www/html/myphotos/images && sudo wget -O beach.jpg <image URL>
    • काय दिसेल: wget output च्या शेवटी saved.
    • Check करा: ls -l मध्ये beach.jpg 0 पेक्षा जास्त size सह दिसते.
    • का: तुम्हाला वापरायची परवानगी असलेल्या image ची URL वापरा. -O beach.jpg ती छोट्या नावाने save करतो, म्हणून HTML सोपं राहतं.
  6. ती दाखवणारं page लिहा
    • Command: sudo nano /var/www/html/myphotos/gallery.html
    • काय दिसेल: <h1>Beach</h1> आणि <img src="images/beach.jpg" width="400"> type करा, मग save करून बाहेर पडा.
    • Check करा: http://PUBLIC_IP/myphotos/gallery.html मध्ये heading आणि picture दिसतात.
    • का: src="images/beach.jpg" page च्या folder पासून relative आहे, म्हणून browser /myphotos/images/beach.jpg मागतो.
  7. Image चा स्वतःचा status code तपासा
    • Command: curl -s -o /dev/null -w "%{http_code}\n" http://localhost/myphotos/images/beach.jpg
    • काय दिसेल: 200
    • Check करा: Browser मध्ये DevTools (F12) → Network मध्ये beach.jpg status 200 सह दिसते.
    • का: Page म्हणजे अनेक files, प्रत्येकीचा स्वतःचा status. Page 200 असूनही एखादी image fail होऊ शकते.
  8. Image मुद्दाम तोडा
    • Command: sudo mv beach.jpg Beach.jpg
    • काय दिसेल: काहीच नाही.
    • Check करा: Gallery reload करा: तुटलेल्या image चा icon. Step 7 चा curl आता 404 print करतो.
    • का: Linux नावं case-sensitive: Beach.jpg म्हणजे beach.jpg नाही. Windows वरून upload केल्यावर तुटलेल्या images चं हे सगळ्यात नेहमीचं कारण.
  9. Fix करा आणि stop करा
    • Command: sudo mv Beach.jpg beach.jpg
    • काय दिसेल: काहीच नाही.
    • Check करा: Picture परत आलं आणि curl 200 print करतो. मग instance stop करा.
    • का: Page बरोबर असेल तर page नाही, नाव दुरुस्त करा. Stop केल्याने free-tier hours वाचतात; files disk वर राहतात.

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

Try at home

Task 1: status codes

  1. http://PUBLIC_IP/ आणि http://PUBLIC_IP/nothing.html उघडा. DevTools › Network मध्ये प्रत्येकाचा status लिहून ठेवा.
  2. sudo mv ने index.html चं नाव index.bak करा. http://PUBLIC_IP/ उघडा आणि curl -s -o /dev/null -w "%{http_code}\n" http://localhost/ चालवा. मग नाव परत करा.

Task 2: folders

  1. /var/www/html/myphotos/gallery.html बनवा आणि browser मध्ये उघडा.
  2. http://PUBLIC_IP/gallery.html उघडा आणि 404 का आला ते सांगा.

Task 3: एक image, तीन मार्ग

  1. दुसऱ्या site वरच्या address ने image दाखवा.
  2. sudo wget ने एक download करा, sudo mv ने rename करा आणि <img src="..."> ने दाखवा.
  3. तुमचा स्वतःचा एक photo scp ने upload करा आणि width="600" ने दाखवा.

Task 4: मुद्दाम तोडा

  1. src बदलून Beach.jpg (capital B) करा. View Page Source आणि DevTools ने problem शोधा.

Task 5: video

  1. तुमच्या स्वतःच्या एका .mp4 file आणि controls सोबत video.html बनवा.
  2. Share › Embed ने एक YouTube video add करा.

काम झालं की instance stop करा.

Recap

थोडक्यात

  1. प्रत्येक उत्तराला status code असतो: 2xx success, 3xx redirect, 4xx request मध्ये problem (401 आधी login, 403 forbidden, 404 not found), 5xx server वर problem.
  2. index.html नसेल तर Amazon Linux वरचा Apache status 403 सोबत त्याचं test page दाखवतो.
  3. DevTools › Network मध्ये page load करत असलेल्या प्रत्येक file चा status दिसतो.
  4. /var/www/html हा site चा root; त्यातले folders URL paths बनतात, आणि folder चं नाव राहिलं तर 404.
  5. Stop आणि start नंतर: sudo service httpd start आणि नवीन public IP. sudo systemctl enable httpd एकदा चालवला की प्रत्येक boot ला Apache start होतो.
  6. HTML: head page बद्दल सांगतं, body म्हणजे जे दिसतं ते; h1 ते h6, p, li, img. <img> ला closing tag नसतो.
  7. width="600" pixels मध्ये रुंदी ठरवतो; height त्याप्रमाणे बदलते.
  8. Hotlinking दुसऱ्या site ची bandwidth परवानगीशिवाय वापरतं आणि तुटू शकतं; वापरायची परवानगी असलेल्या images sudo wget किंवा scp ने तुमच्या server वर ठेवा.
  9. लांब नावाच्या downloads ना sudo mv ने rename करा, मग src="beach.jpg".
  10. तुटलेली image: View Page Source, image ची URL उघडा, DevTools › Network.
  11. स्वतःचा video: <video controls><source src="myvideo.mp4" type="video/mp4"></video>. YouTube: Share › Embed › Copy करून <iframe>.

Ravindra Bagale, trainer: linkedin.com/in/ravindra-bagale. File names (photo.html, beach.jpg, myvideo.mp4, mykey.pem), myphotos आणि services folders, Dubai चं page आणि example.com चे addresses शिकण्यासाठीची उदाहरणं आहेत; PUBLIC_IP म्हणजे तुमच्या instance चा public IPv4 address आणि VIDEO_ID म्हणजे YouTube video चा id. wget output चे काही भाग "..." ने छोटे केलेत; prompt मधलं hostname उदाहरणादाखल आहे.

सराव Tasks

या scenario बद्दल

São Paulo Coffee हा साओ पाउलो मधला कॉफी व्यापार व्यवसाय आहे. Ana Souza त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे BRL मध्ये मोजले जातात आणि AWS resources sa-east-1 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 दाबा.

सोपं Server वरून website test करा

का: DNS तयार होण्याआधीही web server उत्तर देतो का ते curl दाखवतो.

काय करायचं: http://localhost ला request पाठवा व फक्त response headers दाखवा.

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

सोपं GitHub वरून code घ्या

का: git clone पूर्ण repository server वर copy करतो.

काय करायचं: https://github.com/spcoffee/website.git सध्याच्या folder मध्ये clone करा.

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

मध्यम CloudFormation: web SG

का: फक्त 443 उघडल्याने server सुरक्षित.

काय करायचं: 0.0.0.0/0 कडून TCP 443 allow करणारा AWS::EC2::SecurityGroup. GroupDescription द्या.

कसं करायचं:
  1. Task मधल्या top-level keys पासून सुरू करा.
  2. Child keys 2 spaces ने indent करा (tabs नकोत).
  3. प्रत्येक property मध्ये task मधली value भरा.
  4. Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.

मध्यम Security group बनवा

का: Security group म्हणजे instance भोवतीचा firewall.

काय करायचं: vpc-0fc0ce311fdeadbee मध्ये spcoffee-web-sg नावाचा security group "Web servers" description सह बनवा.

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

अवघड Ubuntu वर nginx site enable करा

का: Ubuntu वर sites-available पासून sites-enabled ला symbolic link ने site enable होते.

काय करायचं: /etc/nginx/sites-enabled/ मध्ये /etc/nginx/sites-available/spcoffee ची symbolic link बनवा.

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

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

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

उजळणी card: HTTP status codes. Page fail झालं की code सांगतो चूक कोणाची. Server चं 3-digit उत्तर. 2xx OK, 3xx redirect, 4xx client error, 5xx server error. DevTools › Network मध्ये किंवा curl -I ने बघा. 200 page सापडलं, 404 file नाही, 403 permission नाही, 500 code crash.
उजळणी card: HTTP status codes · PNG download करा
उजळणी card: Apache मध्ये folders चे URLs कसे होतात. हव्या त्या URL वर file उघडायला ती कुठे save करायची ते माहीत हवं. IP नंतरचं सगळं म्हणजे /var/www/html आतला path. Folder बनवा, त्यात index.html ठेवा, folder चं नाव उघडा. File /var/www/html/shop/index.html इथे उघडते:
उजळणी card: Apache मध्ये folders चे URLs कसे होतात · PNG download करा
उजळणी card: &lt;img&gt; ने image टाका. फक्त text असलेली pages रिकामी दिसतात. Images server वर किंवा पोचणाऱ्या URL वर हव्यात. img tag src मधलं चित्र दाखवतो. width size ठरवतं. sudo wget ने server वर download करा किंवा scp ने upload, मग file name द्या. Tag:
उजळणी card: &lt;img&gt; ने image टाका · PNG download करा
उजळणी card: Page वर video दाखवा. Videos text पेक्षा पटकन समजावतात. स्वतःचा host करा किंवा YouTube embed करा.  server वरची file play करतो. iframe YouTube player embed करतो. स्वतःची file: demo.mp4 upload. YouTube: Share › Embed › iframe copy. स्वतःचा video:
उजळणी card: Page वर video दाखवा · PNG download करा
तुलना: 401 Unauthorized vs 403 Forbidden. 401 Unauthorized: Server ला आधी login हवं. 403 Forbidden: Server request ओळखतो पण नाकारतो.
तुलना: 401 Unauthorized vs 403 Forbidden · PNG download करा
तुलना: Own video file vs YouTube embed. Own video file:  ने play होणारी तुमच्या server वरची mp4. YouTube embed: iframe ने ठेवलेला YouTube player.
तुलना: Own video file vs YouTube embed · PNG download करा
मुलाखत card: 403 आणि 404 मध्ये फरक काय?. 404: file नाही. 403: आहे (किंवा folder आहे) पण access नाकारला. Path fix करायचा की permission ते कळतं. index.html नसलेला folder आणि listing बंद = 403.
मुलाखत card: 403 आणि 404 मध्ये फरक काय? · PNG download करा
मुलाखत card: Image दिसत नाही. Debug कसं करता?. View Page Source मध्ये src आणि DevTools › Network मध्ये request तपासा. बहुतेक चुकीचं नाव, चुकीचा case किंवा file नसणं 404 देतं. src="Cat.JPG" पण file cat.jpg › 404.
मुलाखत card: Image दिसत नाही. Debug कसं करता? · PNG download करा
मुलाखत card: 301 vs 302 redirect: कधी कोणता?. 301 = कायमचं हललं. 302 = तात्पुरतं हललं. Browsers आणि Google 301 लक्षात ठेवतात आणि links update करतात; 302 जुना URL ठेवतो. http › https = 301; maintenance page = 302.
मुलाखत card: 301 vs 302 redirect: कधी कोणता? · PNG download करा

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