Nginx Configuration Tutorial: Port, Root Folder आणि Index Page बदला
मागच्या chapter मध्ये आपण Amazon Linux वर Apache चा folder, port आणि पहिलं page बदललं. आता तेच तीन बदल आधी Amazon Linux वरच्या Nginx साठी, मग Ubuntu वरच्या Apache साठी, आणि शेवटी Ubuntu वरच्या Nginx साठी करणार. सोबत settings file ला हात लावण्याआधी backup कसा घ्यायचा, मराठी text UTF-8 ने नीट कसा दाखवायचा, आणि service reload होत नसेल तर चुकीची line कशी शोधायची, हेही शिकू.
या class मध्ये काय शिकणार
- Nginx ची settings कुठे असतात:
/etc/nginx/nginx.confआणिserver { }block - Nginx files मध्ये braces आणि semicolons कसे चालतात
- Settings file edit करण्याआधी backup घेणं, आणि तो परत ठेवणं
- Nginx चा port (
listen), folder (root) आणि पहिलं page (index) बदलणं sudo nginx -tने test आणिreloadने apply- Browsers कुठले ports उघडत नाहीत
- मराठी text विचित्र अक्षरांत दिसत असेल तर:
charset utf-8; - Ubuntu वर Apache:
apache2.conf,ports.confआणि000-default.conf statusवाचून चुकीची line शोधणं- Ubuntu वर Nginx:
sites-available/default - Apache आणि Nginx एकत्र, वेगवेगळ्या ports वर
1. तीच तीन settings, नावं वेगळी
का. प्रत्येक web server ला तीन गोष्टी माहीत पाहिजेत: कुठल्या port वर वाट बघायची, website कुठल्या folder मध्ये आहे, आणि पहिलं page कुठलं दाखवायचं. Apache साठी आपण ही बदलली आहेत. Nginx मध्ये settings त्याच, फक्त नावं वेगळी.
Figure 1. Apache आणि Nginx: Listen आणि listen, DocumentRoot आणि root, DirectoryIndex आणि index. Nginx ची प्रत्येक line semicolon ने संपते.
काय.
- Port: Apache
Listen, Nginxlisten. - Folder: Apache
DocumentRoot, Nginxroot. - पहिलं page: Apache
DirectoryIndex, Nginxindex.
Nginx मधली नावं छोट्या अक्षरांत लिहितात, आणि Nginx ची प्रत्येक setting semicolon ; ने संपते.
2. Nginx ची settings कुठे असतात
का. Setting कोणत्या file मध्ये आहे हे माहीत नसेल तर ती बदलता येत नाही. या chapter मधला प्रत्येक Nginx बदल योग्य file उघडूनच सुरू होतो.
काय. Settings files /etc मध्ये असतात. Nginx चा स्वतःचा folder आहे /etc/nginx, आणि main file आहे /etc/nginx/nginx.conf. तुम्हाला दुसऱ्या endings च्या settings files पण भेटतील, जसं .conf, .cnf, .ini, किंवा default आणि 000-default.conf सारखी नावं. सगळ्या साध्या text files आहेत, nano ने edit करायच्या.
Nginx files कशा बनलेल्या असतात.
- Settings braces
{ }मधल्या blocks मध्ये group केलेल्या असतात. Website ची settingsserver { }block मध्ये असतात, आणि तोhttp { }block च्या आत असतो. - Closing brace
}सगळ्यात शेवटी उघडलेला block बंद करतो, गणितातल्या brackets सारखं. - प्रत्येक setting
;ने संपते. #ने सुरू होणाऱ्या lines comments असतात.include /etc/nginx/conf.d/*.conf;ही line/etc/nginx/conf.dमधली.confने संपणारी प्रत्येक file load करायला लावते.
Figure 2. nginx.conf मधला server block: braces मधले blocks, दोन listen lines, प्रत्येक setting नंतर semicolon.
3. Edit करण्याआधी backup
का. एक चुकीचं अक्षर आणि Nginx बंद. चालू file ची copy असेल तर काही seconds मध्ये परत जाता येतं.
Classroom line
Always keep in mind: before you modify a config file, take its backup.
Class मधलं वाक्य
नेहमी लक्षात ठेवा: config file modify करण्याआधी तिचा backup घ्यायचा.
Classroom line – हिंदी
"Kabhi bhi dhyan me rakho, config file modify karne se pehle uska backup lena hai."
कुठे ठेवायचा. तुमच्या home folder मध्ये, /etc/nginx च्या बाहेर. /etc/nginx/conf.d मध्ये .conf ने संपणाऱ्या नावाची copy राहिली (उदाहरणार्थ old.conf), तर ती extra settings file म्हणून load होते आणि Nginx बिघडवू शकते. Home folder नेहमी safe.
कसं.
Step 1. Copy बनवा:
sudo cp /etc/nginx/nginx.conf ~/nginx.conf.bak
Step 2. Edit मुळे Nginx बिघडला, तर copy परत ठेवा आणि reload करा:
sudo cp ~/nginx.conf.bak /etc/nginx/nginx.conf
sudo service nginx reload
Figure 3. Animation: home folder मध्ये backup, edit, sudo nginx -t ने test, बिघडली तर copy परत.
4. Amazon Linux वर Nginx: आपला port, folder आणि पहिलं page
का. Real servers अनेकदा site स्वतःच्या port आणि folder वर चालवतात. Apache नंतर हेच Nginx वर केलं की कळतं: काम तेच, फक्त शब्द बदलतात.
Example 1: काय बनवणार.
- Port:
90 - Folder:
/var/www/mywebsite - पहिलं page:
home.html - URL:
http://PUBLIC_IP:90/
कसं.
Step 1. Amazon Linux server ला connect करा आणि Nginx start करा (नसेल तर आधी sudo yum install nginx -y ने install करा, आणि Apache बंद आहे ते बघा):
sudo service nginx start
Step 2. Folder आणि page बनवा:
sudo mkdir /var/www/mywebsite
sudo nano /var/www/mywebsite/home.html
हे type करा:
<h1>My website on Nginx</h1>
Step 3. Settings file चा backup घ्या:
sudo cp /etc/nginx/nginx.conf ~/nginx.conf.bak
Step 4. File उघडा:
sudo nano /etc/nginx/nginx.conf
खाली server { पर्यंत scroll करा. Default मध्ये हे असतं:
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
Step 5. दोन्ही listen lines मध्ये port बदला. पहिली IPv4 addresses साठी, दुसरी [::] वाली IPv6 साठी. [::] च्या आत space नको:
listen 90;
listen [::]:90;
Step 6. Folder बदला:
root /var/www/mywebsite;
Step 7. Default मध्ये index line नसते, म्हणून server block च्या आत ती add करा:
index home.html;
प्रत्येक line च्या शेवटी ; विसरू नका.
Step 8. Ctrl+X, Y, Enter ने save करा. बोट घसरलं आणि Ctrl शिवाय x type झाला, तर file मध्ये एक extra x जातो, आणि Nginx त्याच्यावर तक्रार करतो.
Step 9. Nginx ला file check करू द्या:
[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
काही problem असेल तर तो line सांगतो, उदाहरणार्थ unknown directive "x" in /etc/nginx/nginx.conf:....
Step 10. Changes apply करा:
[ec2-user@ip-172-31-xx-xx ~]$ sudo service nginx reload
Redirecting to /bin/systemctl reload nginx.service
Step 11. Security Group मध्ये inbound rule add करा: Custom TCP, port 90, source 0.0.0.0/0. 22 आणि 80 चे rules आहे तसेच ठेवा.
Step 12. http://PUBLIC_IP:90/ उघडा. My website on Nginx दिसतं.
![nano showing /etc/nginx/nginx.conf: include /etc/nginx/mime.types, the comment about loading modular files from /etc/nginx/conf.d with include /etc/nginx/conf.d/*.conf, and the server block with listen 90, listen [::]:90, server_name _, an index line, a root line and charset utf-8.](../../../assets/img/aws/nginx-conf-and-ubuntu-apache2-port-folder-index-01-nginx-conf-server-block-listen-root-index-charset.webp)
Whiteboard: Edit नंतरची Amazon Linux वरची nginx.conf: listen 90 आणि listen [::]:90, नवीन index line, demo च्या स्वतःच्या folder कडे जाणारी root, आणि charset utf-8. index आणि charset डाव्या कडेपासून सुरू झाल्या तरी Nginx ला चालतं.
Example 2: browsers काही ports उघडत नाहीत. समजा तुम्ही port 69 घेतला. Nginx start होतो, Security Group पण allow करतो, पण browser request पाठवतच नाही; restricted किंवा unsafe port चा error दाखवतो. सगळे मोठे browsers दुसऱ्या services च्या ports ची एक fixed list block करतात. 90, 8080 किंवा 9090 सारखा नेहमीचा port घ्या.
Example 3: पहिलं page नसेल तर 403. Folder मध्ये home.html (किंवा index line मधलं दुसरं कुठलंच नाव) नसेल, तर http://PUBLIC_IP:90/ वर 403 Forbidden येतो: Nginx folder ची list दाखवत नाही. बाकीची pages नावाने उघडतात, उदाहरणार्थ http://PUBLIC_IP:90/about.html.
5. मराठी विचित्र अक्षरांत दिसतं: charset utf-8
का. भारतीय sites वर अनेकदा मराठी किंवा हिंदी text असतो. Page UTF-8 आहे असं server ने सांगितलं नाही, तर visitors ना अक्षरांऐवजी विचित्र चिन्हं दिसतात.
काय दिसतं. तुम्ही home.html मध्ये मराठी text टाकला:
<h1>आमचं कॉलेज</h1>
Apache वर तो नीट दिसला, पण Nginx मधून browser असं काहीतरी दाखवतो: आमचं कॉलेज.
का. तुमची file UTF-8 मध्ये save झालीये, म्हणजे मराठी, हिंदी आणि बाकी सगळ्या scripts cover करणारा character set. Nginx browser ला page कुठल्या character set मध्ये आहे ते सांगत नाही, म्हणून browser एक जुना Western set guess करतो आणि प्रत्येक मराठी अक्षराचे अनेक विचित्र symbols बनवतो. (Amazon Linux वरचा Apache default मध्येच UTF-8 पाठवतो, म्हणून तिथे नीट दिसलं.)
Classroom line
We'll have to turn on some setting in nginx that allows the other scripts too.
Class मधलं वाक्य
"nginx madhye apla kahitari ek setting enable karava lagel jyane te bakiche font bi allow karel."
nginx मध्ये आपल्याला काहीतरी एक setting enable करावी लागेल, ज्याने बाकीच्या scripts पण allow होतील.
Classroom line
We'll have to turn on some setting in nginx that allows the other scripts too.
कसं.
Step 1. nginx.conf मधल्या server { } block च्या आत ही line add करा:
charset utf-8;
Step 2. Test आणि reload:
sudo nginx -t
sudo service nginx reload
Step 3. Page refresh करा. मराठी text नीट दिसतो.
Page मध्ये पण. प्रत्येक HTML page च्या <head> मध्ये ही line टाका, म्हणजे page कुठल्याही server वर चालेल:
<meta charset="utf-8">
Figure 4. Animation: charset नसेल तर browser चुकीचा guess करतो आणि मराठी विचित्र अक्षरांत दिसतं; charset utf-8 टाकलं की नीट दिसतं.
6. Ubuntu वर Apache: settings कुठे असतात
का. Ubuntu वर Apache च्या files Amazon Linux पेक्षा वेगळ्या पद्धतीने ठेवलेल्या असतात. Main file मध्ये DocumentRoot शोधलं तर सापडणार नाही.
Classroom line
So where do all the configuration files live?
Class मधलं वाक्य
"So saglya configuration file kuthe astat?"
So सगळ्या configuration files कुठे असतात?
Classroom line
So where do all the configuration files live?
काय.
- Folder:
/etc/apache2. - Main file:
/etc/apache2/apache2.conf. त्यात सगळं नसतं; ती छोट्या files include करते, जसा program libraries आत घेतो. ports.confमध्ये port:Listen 80.sites-available/000-default.confमध्ये website:<VirtualHost *:80>,DocumentRoot /var/www/html.sites-enabled/000-default.confहीsites-availableमधल्या file ची link आहे. कुठल्याही नावाने edit केलं तरी एकच file बदलते; खरी filesites-availableमधली.
Figure 5. apache2.conf मध्ये ports.conf (Listen) आणि sites-enabled च्या files include होतात; 000-default.conf मध्ये VirtualHost, DocumentRoot आणि DirectoryIndex.
Example 4: Ubuntu वर काय बनवणार.
- Port:
90 - Folder:
/var/www/mycollege - पहिलं page:
college.html
कसं.
Step 1. Ubuntu server launch करा, ubuntu ने connect करा, आणि Apache install करा. आधी package list update करा:
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 start
Install fail झालं असेल तर sudo service apache2 start उत्तर देतो Unit apache2.service not found.: sudo apt-get update करा आणि परत install करा.
Step 2. आत बघा:
cd /etc/apache2
ls
apache2.conf, ports.conf, sites-available, sites-enabled वगैरे दिसतात.
Step 3. बदलणार आहात त्या दोन files चा backup घ्या:
sudo cp /etc/apache2/ports.conf ~/ports.conf.bak
sudo cp /etc/apache2/sites-available/000-default.conf ~/000-default.conf.bak
Step 4. ports.conf मध्ये port बदला:
sudo nano /etc/apache2/ports.conf
Listen 80 च्या जागी:
Listen 90
Step 5. Website ची file उघडा:
sudo nano /etc/apache2/sites-available/000-default.conf
Step 6. पहिली line नवीन port वर बदला, म्हणजे site 90 वर उत्तर देईल:
<VirtualHost *:90>
Step 7. Folder बदला आणि त्याच्या खाली पहिलं page add करा:
DocumentRoot /var/www/mycollege
DirectoryIndex college.html
Step 8. Save करा. Folder आणि page बनवा:
sudo mkdir /var/www/mycollege
sudo nano /var/www/mycollege/college.html
हे type करा:
<meta charset="utf-8">
<h1>college</h1>
Step 9. Check आणि reload:
sudo apache2ctl configtest
sudo service apache2 reload
Files बरोबर असतील तर configtest Syntax OK print करतो.
Step 10. Port 90 साठी Security Group rule add करा (Custom TCP, 90, 0.0.0.0/0), आधीसारखा.
Step 11. http://PUBLIC_IP:90/ उघडा. college दिसतं.
Step 12. List साठी history चालवा:
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 start
cd /etc/apache2
sudo nano /etc/apache2/ports.conf
sudo nano /etc/apache2/sites-available/000-default.conf
sudo mkdir /var/www/mycollege
sudo nano /var/www/mycollege/college.html
sudo service apache2 reload
7. Reload fail झाला: status वाचा
का. Settings file मध्ये एक typo आणि reload red मध्ये fail. कारण नेहमी लिहिलेलं असतं; फक्त वाचायचं.
Classroom line
Whenever any service stops with an error... what do we do then?
Class मधलं वाक्य
"Jevha kadhibi kutlahi service band padta, error yete... kay karaycha tya veles?"
जेव्हा कधीही कुठलीही service बंद पडते, error येते... काय करायचं त्या वेळेस?
Classroom line
Whenever any service stops with an error... what do we do then?
Classroom line
Check the status. It's written in the status.
Class मधलं वाक्य
"Status check kara. Status madhe lihilela aste."
Status check करा. Status मध्ये लिहिलेलं असतं.
Classroom line
Check the status. It's written in the status.
कसं.
Step 1. Fail झालेल्या service चा status चालवा:
sudo service apache2 status
Step 2. शेवटच्या lines वाचा. त्यात file आणि line दिलेली असते.
Example 5: एक extra अक्षर. एका line वर एकटा x type झाला तर:
AH00526: Syntax error on line 14 of /etc/apache2/sites-enabled/000-default.conf:
Invalid command 'x', perhaps misspelled or defined by a module not included in the server configuration
Example 6: चुकीचं spelling. DirectoryIndex college.html च्या ऐवजी DocumentIndex college.html लिहिलं तर तसाच Invalid command 'DocumentIndex' message येतो. Spelling बरोबर करा, मग परत reload करा.
Classroom line
When you see red, check the status.
Class मधलं वाक्य
"Red aala ki status check karaycha."
Red आलं की status check करायचा.
Classroom line
When you see red, check the status.
8. Ubuntu वर Nginx
का. Ubuntu Nginx settings वेगवेगळ्या files मध्ये ठेवतो. तिथे nginx.conf edit करून काहीच बदललं नाही, तर कारण हे.
काय. Ubuntu वर Nginx website ची settings वेगळ्या file मध्ये ठेवतो: /etc/nginx/sites-available/default. /etc/nginx/sites-enabled/default तिची link आहे, म्हणून कुठल्याही नावाने तीच file उघडते.
Classroom line
Now Nginx... stop Apache, start Nginx, and change Nginx's configuration.
Class मधलं वाक्य
"Ata nginx... apache stop kara, nginx start kara, aani nginx cha configuration change kara."
आता nginx... apache stop करा, nginx start करा, आणि nginx चं configuration change करा.
Classroom line
Now Nginx... stop Apache, start Nginx, and change Nginx's configuration.
कसं.
Step 1. Apache बंद करा, Nginx नसेल तर install करा, आणि start करा:
sudo service apache2 stop
sudo apt-get install nginx -y
sudo service nginx start
Step 2. Site file चा backup घ्या आणि ती उघडा:
sudo cp /etc/nginx/sites-available/default ~/default.bak
sudo nano /etc/nginx/sites-available/default
Step 3. तीच तीन settings बदला:
listen 90 default_server;
listen [::]:90 default_server;
root /var/www/mycollege;
index college.html;
Step 4. Test, reload, आणि http://PUBLIC_IP:90/ उघडा:
sudo nginx -t
sudo service nginx reload
परत college दिसतं, आता Nginx serve करतोय.
Figure 6. Ubuntu वर Nginx: /etc/nginx/sites-available/default मध्ये listen, root आणि index.
9. Apache आणि Nginx एकत्र
का. कधी site Apache वरून Nginx वर downtime शिवाय हलवावी लागते, किंवा जुनी आणि नवीन site बाजूबाजूला चालवावी लागते. वेगवेगळे ports हे शक्य करतात.
काय. एका server वर दोन web servers एकाच वेळी चालू शकतात, फक्त वेगवेगळ्या ports वर. दोघं port 80 वर शक्य नाही: जो दुसरा start होतो तो fail होतो.
Example 7.
- Nginx port 80 वर:
http://PUBLIC_IP/. - Apache 8080 वर:
ports.confमध्येListen 8080आणि000-default.confमध्ये<VirtualHost *:8080>; मगhttp://PUBLIC_IP:8080/. - Security Group मध्ये 8080 पण उघडा.
Classroom line
Apache and Nginx can both run at the same time, if the two run on different ports.
Class मधलं वाक्य
"Apache aani nginx donhi bi ekach veles chalu asu shaktat, jar dogha vegveglya port var run hotayt tar."
Apache आणि nginx दोन्ही बी एकाच वेळेस चालू असू शकतात, जर दोघं वेगवेगळ्या port वर run होतायत तर.
Classroom line
Apache and Nginx can both run at the same time, if the two run on different ports.
Figure 7. एक server: Nginx port 80 वर आणि Apache port 8080 वर; URL मधला port web server ठरवतो.
10. पुढे काय
आत्तापर्यंत आपण छोटी pages हाताने लिहिली. पुढे developer GitHub वर ठेवतो तो खरा website code आपण host करणार. नंतर ते automate करणार: developer एकाच ठिकाणी code बदलतो, आणि तो आपोआप server वर पोचतो.
Classroom line
I'll write in one place, and everything should reach the server automatically.
Class मधलं वाक्य
"Mi ekach thikani lihnar, sagla automatically server la jayla pahije."
मी एकाच ठिकाणी लिहिणार, सगळं automatically server ला जायला पाहिजे.
Classroom line
I'll write in one place, and everything should reach the server automatically.
11. पूर्ण flow एका page वर
- आधी backup:
sudo cp <file> ~/<file>.bak. - Amazon Linux वर Nginx:
/etc/nginx/nginx.conf,server { }:listen 90;,listen [::]:90;,root /var/www/mywebsite;,index home.html;,charset utf-8;. - Check आणि apply:
sudo nginx -t,sudo service nginx reload. - Security Group: नवीन port साठी Custom TCP. Browsers block करतात ते ports टाळा.
- Ubuntu वर Apache:
ports.conf(Listen 90) आणिsites-available/000-default.conf(<VirtualHost *:90>,DocumentRoot,DirectoryIndex);sudo apache2ctl configtest,sudo service apache2 reload. - Reload fail:
sudo service apache2 status, file आणि line वाचा, fix करा. - Ubuntu वर Nginx:
/etc/nginx/sites-available/default. - Apache आणि Nginx एकत्र: वेगवेगळे ports.
12. Hands-on lab: Nginx स्वतःच्या port, folder आणि पहिल्या page वर
हा lab का. कोणतीही server setting बदलायची सुरक्षित पद्धत नेहमी एकच: backup, edit, test, apply, check, आणि undo कसं करायचं ते माहीत. हा lab ती पद्धत Nginx वर चालवतो, आणि charset ची ओळ सिद्ध करायला मराठी text वापरतो.
- Nginx install आणि start करा
- Command:
sudo yum install nginx -y && sudo service nginx start - काय दिसेल:
Complete!, मगRedirecting to /bin/systemctl start nginx.service. - Check करा:
curl -s http://localhost | grep -i titleNginx welcome चं title दाखवतो. - का: Apache port 80 वर चालू असेल तर आधी तो stop करा (
sudo service httpd stop): एक port एकच program वापरू शकतो.
- Command:
- Settings file चा backup घ्या
- Command:
sudo cp /etc/nginx/nginx.conf ~/nginx.conf.bak - काय दिसेल: काहीच नाही.
- Check करा:
ls ~मध्येnginx.conf.bakदिसतं. - का: Copy
/etc/nginx/conf.dबाहेर ठेवा: तिथली प्रत्येक.conffile load होते, म्हणून आतला backup सुद्धा load होईल.
- Command:
- Folder आणि मराठी page बनवा
- Command:
sudo mkdir -p /var/www/mywebsite && echo "<h1>नमस्कार</h1>" | sudo tee /var/www/mywebsite/home.html - काय दिसेल:
<h1>नमस्कार</h1> - Check करा:
ls /var/www/mywebsite→home.html - का: मराठी अक्षरं multi-byte UTF-8 आहेत, म्हणून charset बरोबर set आहे की नाही ते लगेच दिसतं.
- Command:
- Server block edit करा
- Command:
sudo nano /etc/nginx/nginx.conf - काय दिसेल:
server { }block मध्येlisten 90;,listen [::]:90;,root /var/www/mywebsite;set करा, आणिindex home.html;वcharset utf-8;जोडा. Save करून बाहेर पडा. - Check करा: तुम्ही बदललेली प्रत्येक ओळ
;ने संपते. - का: दोन्ही
listenओळी बदलायला हव्यात: एक IPv4, दुसरी IPv6. Semicolon नसणं हा Nginx चा सगळ्यात नेहमीचा typo.
- Command:
- Apply आधी test करा
- Command:
sudo nginx -t - काय दिसेल:
nginx: the configuration file /etc/nginx/nginx.conf syntax is okandnginx: configuration file /etc/nginx/nginx.conf test is successful - Check करा: त्याऐवजी line सांगितली तर ती ओळ दुरुस्त करून परत चालवा.
- का:
-tचालू server ला हात न लावता file तपासतो. तुटलेली file visitors पर्यंत कधीच पोहोचत नाही.
- Command:
- reload ने apply करा
- Command:
sudo service nginx reload && curl http://localhost:90 - काय दिसेल:
<h1>नमस्कार</h1> - Check करा: Security group मध्ये port 90 उघडा, मग
http://PUBLIC_IP:90/मध्ये नमस्कार नीट अक्षरात दिसतं. - का:
reloadचालू visitors ना न तोडता नवीन settings वाचतो.index home.htmlमुळेच URL मध्ये file चं नाव लागत नाही.
- Command:
- बाजूला Apache चालवा
- Command:
sudo service httpd start && curl -s -o /dev/null -w "%{http_code}\n" http://localhost/ - काय दिसेल:
200 - Check करा: एकाच server वर port 80 वरून Apache आणि port 90 वरून Nginx उत्तर देतात.
- का: दोन web servers एक machine फक्त वेगवेगळ्या ports वर share करू शकतात. Site एकीकडून दुसरीकडे downtime शिवाय हलवायची ही पद्धत.
- Command:
- पूर्ववत करा आणि stop करा
- Command:
sudo cp ~/nginx.conf.bak /etc/nginx/nginx.conf && sudo nginx -t && sudo service nginx reload - काय दिसेल:
nginx -tच्या दोन success ओळी. - Check करा:
curl http://localhost:90आता fail होतो. Instance stop करा. - का: Backup restore करून परत test केलं की undo चालतो हे सिद्ध होतं, आणि backup घेण्याचा उद्देश हाच.
- Command:
13. घरी करून बघा
Try at home
Task 1: Amazon Linux वर Nginx
nginx.confचा backup home folder मध्ये घ्या.- Port 90, folder
/var/www/mywebsite, पहिलं pagehome.htmlset करा, आणिcharset utf-8;add करा. sudo nginx -tचालवा, reload करा, port 90 उघडा आणि page check करा.home.htmlमध्ये एक मराठी line टाका आणि ती नीट दिसते का ते बघा.
Task 2: बिघडवा आणि परत आणा
- एक
;काढा,sudo nginx -tचालवा आणि message वाचा. - तुमचा backup परत copy करा आणि reload करा.
Task 3: Ubuntu वर Apache
Listen 90,<VirtualHost *:90>,DocumentRoot /var/www/mycollegeआणिDirectoryIndex college.htmlset करा.- Reload करा आणि
http://PUBLIC_IP:90/उघडा. DirectoryIndexचं spelling चुकवा, reload करा, आणिsudo service apache2 statusने line शोधा. Fix करा.
Task 4: Ubuntu वर Nginx
- Apache बंद करा, Nginx start करा, आणि
sites-available/defaultमध्ये तेच port, folder आणि पहिलं page set करा.
झालं की instances stop किंवा terminate करा.
Recap
थोडक्यात
- Apache
Listen,DocumentRoot,DirectoryIndex= Nginxlisten,root,index. - Nginx settings braces मधल्या blocks मध्ये असतात; प्रत्येक line
;ने संपते. दोन्हीlistenlines बदला (IPv4 आणि IPv6). - Settings file edit करण्याआधी home folder मध्ये backup; edit मुळे बिघडलं तर तो परत ठेवा.
sudo nginx -tfile check करतो;sudo service nginx reloadapply करतो.- नवीन port Security Group मध्ये उघडा; browsers काही ports उघडत नाहीत, म्हणून नेहमीचे ports वापरा.
- मराठी ऐवजी विचित्र अक्षरं:
charset utf-8;आणि<meta charset="utf-8">टाका. - Ubuntu Apache: port साठी
ports.conf, VirtualHost, folder आणि पहिल्या page साठीsites-available/000-default.conf. Reload fail:statusवाचा. - Ubuntu Nginx:
sites-available/default. Apache आणि Nginx एकत्र फक्त वेगवेगळ्या ports वर.
Ravindra Bagale, trainer: linkedin.com/in/ravindra-bagale. mywebsite आणि mycollege folders, home.html, about.html आणि college.html pages, आणि मराठी sample text शिकण्यासाठीची उदाहरणं आहेत; PUBLIC_IP म्हणजे तुमच्या instance चा public IPv4 address. Outputs मधले काही भाग "..." ने छोटे केलेत; error examples मधले line numbers आणि prompt मधलं hostname उदाहरणादाखल आहेत.
सराव Tasks
Sahyadri Clinic हा सातारा मधला आरोग्य सेवा व्यवसाय आहे. Dr. Anil Deshmukh त्यांचं IT व cloud काम पाहतात. त्यांचे पैसे INR मध्ये मोजले जातात आणि AWS resources ap-south-1 Region मध्ये चालतात. खालच्या tasks मध्ये तुम्ही या lesson मध्ये शिकलेलं वापरून त्यांची खरी कामं करता. सगळी नावं, account IDs, IP addresses व numbers सरावासाठी काल्पनिक आहेत.
0 / 12
सोपं बदलानंतर service restart करा
का: Config बदल service restart/reload नंतरच लागू होतात.
काय करायचं: nginx service restart करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Service चालू आहे का ते पाहा
का: Site बंद असेल तर आधी web server चालू आहे का ते पाहा.
काय करायचं: httpd service चं status दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Ubuntu वर package install करा
का: Ubuntu apt वापरतं. Package नावं वेगळी: Ubuntu वर Apache म्हणजे apache2.
काय करायचं: Ubuntu वर apache2 package confirm न विचारता install करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- 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 करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं Server वरून website test करा
का: DNS तयार होण्याआधीही web server उत्तर देतो का ते curl दाखवतो.
काय करायचं: http://localhost ला request पाठवा व फक्त response headers दाखवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
सोपं GitHub वरून code घ्या
का: git clone पूर्ण repository server वर copy करतो.
काय करायचं: https://github.com/sahyadriclinic/website.git सध्याच्या folder मध्ये clone करा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम nginx config test करा
का: Restart मुळे site बंद पडण्याआधी test चुका पकडतो.
काय करायचं: nginx configuration files मधल्या चुका तपासा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Service आत्ता व boot ला सुरू करा
का: enable reboot नंतर सुरू करतो; --now आत्ताच सुरू करतो.
काय करायचं: nginx service enable करा व लगेच सुरू करा, एका command ने.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
मध्यम Port 80 सगळ्यांसाठी उघडा
का: Security group HTTP allow करत असेल तरच visitors website पाहू शकतात.
काय करायचं: Security group sg-00210306304c4c3b2 वर 0.0.0.0/0 कडून inbound TCP port 80 allow करा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
मध्यम CloudFormation: web SG
का: फक्त 443 उघडल्याने server सुरक्षित.
काय करायचं: 0.0.0.0/0 कडून TCP 443 allow करणारा AWS::EC2::SecurityGroup. GroupDescription द्या.
- Task मधल्या top-level keys पासून सुरू करा.
- Child keys 2 spaces ने indent करा (tabs नकोत).
- प्रत्येक property मध्ये task मधली value भरा.
- Check answer दाबा. Keys चा क्रम महत्त्वाचा नाही.
मध्यम Security group बनवा
का: Security group म्हणजे instance भोवतीचा firewall.
काय करायचं: vpc-01030c304edeadbee मध्ये sahyadriclinic-web-sg नावाचा security group "Web servers" description सह बनवा.
- Task वाचा आणि ते कोणत्या AWS service बद्दल आहे ते ठरवा.
- aws लिहा, मग service चं नाव, मग operation (action शब्द).
- प्रत्येक आवश्यक flag (--name) व त्यापुढे task मधली value लिहा.
- Flags कोणत्याही क्रमाने चालतात. Check answer दाबा.
अवघड Ubuntu वर nginx site enable करा
का: Ubuntu वर sites-available पासून sites-enabled ला symbolic link ने site enable होते.
काय करायचं: /etc/nginx/sites-enabled/ मध्ये /etc/nginx/sites-available/sahyadriclinic ची symbolic link बनवा.
- हे काम करणारा Linux command शोधा.
- Task ला लागणारे options (उदा. -r, -h) जोडा.
- File नावं, folders किंवा users योग्य क्रमाने लिहा.
- System files/users बदलत असाल तर sudo वापरा. Check answer दाबा.
उजळणी, तुलना आणि मुलाखत cards
हा lesson काही मिनिटांत revise करा. Cards phone वर save करा किंवा PNG download करा. प्रत्येक card वरचा QR हा lesson उघडतो.







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