Drawing
- 1. Web Server-ийн тухай
Web Server нь Web browser-ийн Request (хүсэлт)-ийн дагуу HTML хуудсаар
Respond(хариу) буцаадаг. Энэхүү хуудас нь дараах 3 янз байж болно.Үүнд:v Static
HTML page (статик хуудас)v Dynamic HTML page( динамик хуудас)v Directory-listing
page
1.1. Static HTML page (статик хуудас)
Cтатик хуудас гэдэг нь Request –д зориулсан урьдчилан бэлтгэсэн HTML хуудас
юм. Web Server энэхүү хуудсыг ямар нэгэн тусгай үйлдэл хийлгүйгээр шууд
хэрэглэгч рүү явуулдаг Энэхүү хуудсыг үзэх хэрэглэгчийн Request нь URL эсвэл
URL –руу заасан холболт байж болно. Жишээ
нь: http://www.company.com/home.htmURL нь серверрүү илгээгдэж сервер нь
Respond (HTML хуудас) буцаадаг.
1.2. Dynamic HTML page( динамик хуудас)
Динамик хуудас нь хэрэглэгчийн Request -ийн дагуу үүсгэгддэг. Хэрэглэгч нь Web
browser дээр text box, menu, check box зэргийг бөглөж сонголт хийгээд тухайн Form
дээрх товчийг дарахад дээрх мэдээлэл нь серверрүү илгээддэг. Сервер нь энэхүү
мэдээллийг хүлээн аваад баазруу хийгээд эсвэл script, application зэргээр
боловсруулалт хийгээд үр дүнг нь HTML хуудсаар хэрэглэгч рүү явуулдаг.
1.3. Directory-listing page
Хэрэв хэрэглэгч серверрүү query илгээхдээ тусгай файл, хуудас заалгүй явуулсан
тохиолдолд web side ба директорт зориулсан үндсэн харагдах хуудсыг тодорхойлж
өгч болдог. Эсвэл сервер дээрх директоруудыг харахаар тохируулж өгч
болдог.Хэрэв үндсэн харагдах хуудсыг тодорхойлж өгөөгүй, эсвэл директоруудыг
харах тохироог хийгээгүй бол директоруудын жагсаалт нь HTML хуудсаар
- 2. хэрэглэгчрүү явна..Директоруудын жагсаалтаас үндсэн хуудас тодорхойлж өгөх
арга нь илүү үр дүнтэй байдаг.
WEB SERVER APPLICATIONS & SCRIPTS
Web server applications & scripts нь Web browser буюу хэрэглэгчээс HTTP request
message (хүсэлт)–ийг Web Server–ээр дамжуулан хүлээн аваад түүний үндсэн
дээр боловсруулалт хийгээд үр дүнг нь мөн Web Server-ээр дамжуулан
HTML хуудас байдлаар хэрэглэгчрүү явуулдаг. Web Server дээр ажиллаж дээрхи
үйлдлийг хийдэг.Common Gateway Interface (CGI), Internet Server Application
Programming Interface (ISAPI) гэх мэт программчлалын технологи (арга) буюу
интерфейс байдаг. Common Gateway Interface (CGI), Internet Server Application
Programming Interface (ISAPI)-ийг Delphi, Visual Basic, C гэх мэт программчлалын
хэлний сүүлчийн хувилбарыг ашиглан хийх боломжтой байдаг. Internet Data
Connector (IDC), Advanced Data Connector (ADC), Active Serser Page (ASP)
зэрэг .Web server site script -үүд байдаг.
UNIX болон UNIX-төст системд хэрэглэгддэг web server нь Apache server юм.Өнөө
үед дэлхий даяар Windows системд IIS болон UNIX-төст системд Apache web
server-үүдийг өргөн хэрэглэгдэж байна.Apache нь төсөл маягаар хөгжүүлэгддэг
бөгөөд RedHat суурьт системд httpd гэж нэрлэгдэх package байдаг.Apache server
нь маш олон файлыг агуулсан гурван гол хэсгээс тогддог. Үүнд:
1. Global Environment ( Apache яаж ажиллах вэ?)
2. Main Server Configuration ( Apache-ийн гол тохиргоо)
3. Virtual host ( Олон web нэг server-д ажиллах)
Apache server-ийг хэд хэдэн янзаар суулгаж болдог бөгөөд үүнд:
1. [nomuun@localhost ~]$ su -
Password:
[root@localhost ~]# yum install httpd
- 3. 2. [nomuun@localhost ~]$ su -
Password:
[root@localhost ~]# yum group install web-server
3. Системээ анх суулгах үед суулгах гэсэн аргууд орж болох юм.
Дээрх суулгах аргуудын сүүлийн хоѐр аргаар суулгах нь тийм ч сайн сонголт биш
юм.Учир нь дээрх хоѐр аргаар суулгахад маш олон module-ууд суудаг.Энэ нь
server-ийг эмх зэгц муутай болгодог.Үүний оронд нэг дэхь аргаар суулгаад хэрэг
болсон module-ийг дахин ачаалах замаар тодорхойлж хэрэглэвэл илүү хялбар
бөгөөд санах ой хэмнэнэ.Ингэж дахин ачаалж хэрэглэх талаар сүүлд үзэх болно.
Суурь тохиргоо
Apache үндсэн нэг тохиргооны файлтай бөгөөд энэ нь /etc/httpd/conf/httpd.conf
файл юм.Мөн нэмэлт байдлаар тохиргооны файлыг нэмж хийх боломжтой
байдаг.Үүнийг сүүлд үзэх болно.Apache-ийн анхны тохиргоо нь server-ийг хэвийн
ажиллах хэмжээнд тохируулагдсан байдаг.Мэдээж үүнийг өөрийн хэрэгцээнд
тааруулан өөрчилж болно.Одоо энгийн web server ажиллуулах тохиргоог хийж
үзье.Хэрэв та тохиргооны файлыг өөрчлөх гэж байгаа бол үүний эх тохиргооны
файлыг хадгалах хэрэгтэй.Энэ нь таныг алдаа гаргахаас сэргийлнэ.
[bash]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.original
[bash]# vi /etc/httpd/conf/httpd.conf
Энэ файлд доорх тохиргоонуудыг хийж болно.
ServerRoot "/etc/httpd"
- 4. ServerRoot нь хаана тохиргооны файл, error log, хадгалах файл байгааг зааж
байдаг.
Listen 80 Бүх client холбогдох боломжтой.
Listen
192.168.1.1:80
Дотоод сүлжээнд байгаа нэг client холбогдох боломжтой.
Listen нь заасан port дугаар болон IP хаягнаас хандахыг заана.
Apache web server нь маш олон module-тай бөгөөд эдгээр нь тодорхой үйлдэл
гүйцэтгэх зорилгоор бичигдсэн байдаг. Эдгээр module-ийг дахин ачаалан хэрэглэж
болдог.Module-хэрэглэгдэх функцуудыг хэрэглэхийн өмнө заавал module-аа
ачаалсан байх шаардлагтай.
LoadModule userdir_module modules/mod_userdir.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule rewrite_module modules/mod_rewrite.so
Дээрх LoadModule-аар module-ийг ачаална.
Include нь систем эхлэх болон дахин ачаалах үед “/etc/httpd/conf.d” директорд
байгаа .conf өргөтгөлтэй бүх файлыг гол тохиргооны файлтай хамт ачаалхыг зааж
байдаг.
Include conf.d/*.conf
ExtendedStatus-ийг “on” болгох замаар server-ийг ажиллаж байхад зарим нэг real-
time status information авах боломжтой болдог.
ExtendedStatus On
- 5. User болон Group нь Apache-ийг ажиллуулах local user болон group-ийг зааж
байдаг.
User apache
Group apache
ServerAdmin-д ихэвчлэн server-ийн удирдагчийн e-mail хаягийг зааж өгсөн байдаг.
Apache нь алдаа гархад энэ e-mail-ийг алдааны хуудсан дээр харуулдаг.Энэ нь
эрсдэл өндөртэй байдаг. Учир нь удирдагчийн e-mail хаягийг ашиглан системд
хандах боломжийг үүсгэж байдаг.
ServerAdmin sysadmin@example.com
ServerName нь алдааны мэдээлэл дээр гарах server-ийн hostname-ийг
харуулдаг.Хэрэв та canonical нэр хэрэглэж байгаа бол UseCanonicalName-д “on”
гэж зааж өгөх хэрэгтэй.
ServerName www.example.com:80
UseCanonicalName On
Дээрх тохиргоонд port-ийн дугаарыг сольж өгч болох бөгөөд хэрэв 80-аар port
хэрэглэх бол бичихгүй байж болдог.Дээрх тохиргоог тайлбарлавал server-ийн
нэрийг canonical гэдгийг зааж өгч байгаа бөгөөд хэрэглэч 80-аар port ашиглан
ямарч IP хаягнаас хандах боломжтой гэдгийг зааж байна.
DocumentRoot нь таны web хуудас хаана байрлахыг заах бөгөөд энэ directory дахь
web хуудсыг хандсан хэрэглэгчид үзүүлнэ.
DocumentRoot "/var/www/html"
- 6. DirectoryIndex нь server-д хэн нэгэн хандхад түүнд үзүүлэх эхний web хуудсын
нэрийг зааж өгдөг.Хэрэв харгалзах нэртэй web хуудас байхгүй бол Welcome page-
ийг харуулдаг.
DirectoryIndex index.html index.html.var
AccessFileName нь хэрэглэгч directory бүрд хандах болгонд үзүүлэх файлыг
заадаг.Файлын нэр нь зарим нэг нэмэлт тохиргоог агуулдаг бөгөөд хамгийн
түгээмэл нэр нь .htaccess юм..htaccess файл нь ерөнхийдөө directory дахь хандах
хязгаарлалт болон authentication-ийш заахад хэрэглэгддэг.
AccessFileName .htaccess
Apache-д default-аар энэ файлын нэр нь .htaccess байдаг.Иймээс энэ нь аюулгүй
байдал талаас өндөр эрсдэл бий болгодог.Үүнээс сэргийлэхийн тулд энэ файллын
нэрийг өөрчилж өгч болох бөгөөд энэ шинэ нэрийг .ht-ээр эхлүүлж байх нь зөв
байдаг.
.........
Өгөгдсөн директор дахь заавруудыг тодорхойлно.Өөрөөр хэлбэл хандах
хязгаарлалт гэж ойлгож болно.
........
Өгөгдсөн document дахь заавруудыг тодорхойлно.Мөн энд list хийх хийхгүй зааж
өгч болдог. Үүнийг ашиглан mirror web site-ууд ftp болон http аль алинд нь list хийж
харуулдаг.
......
- 7. Өгөгдсөн файлд хамаарах заавруудыг тодорхойлдог.Мөн энд өгөгдсөн файлуудын
жагсаалтуудыг харж болдог.
server-status нь идэвхитэй байгаа Apache server-ийн талаарх real-time status
information-г харуулдаг. Доорх жишээн дээрхтэй адилаар хялбар хязгаарлалт хийж
өгч болно.
SetHandler server-status
Order deny,allow
Deny from all
Allow from .example.com
Allow from 127.0.0.1 192.168.1.0/24
server-info нь идэвхитэй байгаа Apache server-ийн талаарх real-time configuration
information-г харуулдаг. Доорх жишээн дээрхтэй адилаар хялбар хязгаарлалт хийж
өгч болно.
SetHandler server-info
Order deny,allow
Deny from all
Allow from .example.com
Allow from 127.0.0.1 192.168.1.0/24
Энд бид хамгийн ерөнхий тохиргоог хийж үзлээ.Одоо server-ээ эхлүүлье.
Apache server-ийг httpd гэсэн нэрээр ажиллуулдаг.Мөн ажиллах түвшинг нь
тодорхойлж өгөх хэрэгтэй.
- 8. [bash]# chkconfig --level 345 httpd on
[bash]# chkconfig --list httpd
Server маань одоо ажиллах боломжтой болсон бөгөөд эхлэл болон алдааг нь
харах хэрэгтэй.
[bash]# /etc/init.d/httpd restart
[bash]# grep httpd /var/log/messages
[bash]# tail /var/log/httpd/error_log
Мөн систем эхлэх үед автогоор асаж байхаар тохируулж болдог.
[bash]# chkconfig httpd on
[bash]# chkconfig -list httpd
Virtual Hosts
Apache server нь нэгээс олон web-ийг нэг server дээр холилгүйгээр ажиллуулах
боломжыг олгож өгдөг. Хоѐр төрлийн virtual host байдаг:
1. IP суурьт, server нь маш олон IP хаягтай бөгөөд харгалзах эдгээрт
харгалзуулан domain нэрүүд байна.
2. Нэр суурь, нэг IP хаягтай бөгөөд олон domain нэрүүд байна.
Нэр суурьтай virtual host үед DNS-д web-ийн талаарх мэдээлэл байх ѐстой
байдаг.httpd.conf файллын сүүлийн хэсэгт virtaul host-ийг зааж байдаг.