1 / 48

Web Server 架設

Web Server 架設. Outline. 簡介 Apache 安裝 Apache 設定檔案 Apache 進階管理 架設 Virtual Web. www 與 http 簡介. WWW ( World Wide Web) 全球資訊網,是 Internet 上的一項網路服務,讓使用者可以用點擊超連結 (Hyperlink) 的方式將資訊傳遞到全世界。 HTTP( H yper  T ext  T ransfer  P rotocol ) ,在 WWW Server 與 Client 端瀏覽器之間,用來彼此溝通的協定。

Download Presentation

Web Server 架設

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Web Server 架設

  2. Outline 簡介 Apache 安裝 Apache 設定檔案 Apache 進階管理 架設Virtual Web

  3. www與http簡介 WWW (World Wide Web) 全球資訊網,是 Internet 上的一項網路服務,讓使用者可以用點擊超連結 (Hyperlink) 的方式將資訊傳遞到全世界。 HTTP(Hyper Text Transfer Protocol ),在 WWW Server 與 Client 端瀏覽器之間,用來彼此溝通的協定。 URL (Uniform Resource Locator),連結WWW 的語法。<協定>://<主機位址或主機名稱>[:port]/<目錄資源> ex: http://www.edu.tw

  4. Apache簡介 Apache 的前身為 NCSA ( National Center for Supercomputing Applications ),於 1995 年為排名第一的 Web Server 軟體。 Apache名稱的由來是因為當初的研發團隊針對 NCSA 不斷的修正而來:a patchy server,才取名為 Apache。 因與美國的一個原住民名稱相同,所以 Logo 就以彩色的羽毛來作為其標誌圖案。 Apache 1.0 版於 1995 年 12 月正式釋出。 Apache 2.X版支援非UNIX平台及IPv6。 官方網站 http://www.apache.org ,可以下載各種作業系統版本的 Apache 套件 (包括 Windows 版本)。

  5. 不確定是否已安裝 # rpm –q httpd 安裝 Apache 套件 # yum –y install httpd 更新套件#yum –y update httpd 安裝 Apache 伺服器

  6. 啟動 Apache 伺服器 #/etc/rc.d/init.d/httpd start 重新啟動 Apache 伺服器 #/etc/rc.d/init.d/httpd restart 停止 Apache 伺服器 #/etc/rc.d/init.d/httpd stop 不能啟動或啟動錯誤需檢查httpd設定檔#vi /etc/httpd/conf/httpd.conf 啟動 Apache 伺服器

  7. 用瀏覽程式測試 Apache 伺服器 URL = http://localhost or http://127.0.0.1 執行 ps aux | grep httpd可看到 httpd (http daemon) 程序在執行。 測試Apache 伺服器

  8. 方法一用root執行「 ntsysv 」選取「httpd 」 方法二 # chkconfig httpd on 開機時自動啟動 Apache 伺服器

  9. 維護系統網頁 本機首頁的位置是放在 「/var/www/html」 目錄下,而擁有者是屬於『 root』。 更新系統預設的網頁 必須以 root 身份登入才可更動 如何上傳系統網頁 更改網頁預設顯示的語系

  10. 開放 ftp 讓 root 可以上傳網頁 透過使用ssh 協定的加密檔案程式 SSH FileTransfer (FileZilla) 上傳網頁 利用符號連結,將系統網頁指向使用者個人網頁 如何上傳系統網頁

  11. 利用符號連結,將系統網頁指向使用者個人網頁利用符號連結,將系統網頁指向使用者個人網頁 # cd /var/www #mv html html.old #chmod +x /home/wei #ln –s /home/wei/public_html html 上傳系統網頁

  12. 預設顯示的語系並不是繁體中文 (Big5) ,因此在瀏覽繁體中文 (Big5) 網頁時較不方便。 更改網頁預設顯示的語系 # vi /etc/httpd/conf/httpd.conf 759 #AddDefaultCharset UTF-8 760 AddDefaultCharset Big-5 更改網頁預設語系

  13. 設定使用者網頁空間 除了預設的網站網頁,系統讓每個使用者都可以擁有個人的網頁,而其網頁需放在家目錄下的 public_html 目錄。

  14. #vi /etc/httpd/conf/httpd.conf 366行 UserDir disabled 373行 #UserDir public_html UserDir Disable』 #UserDir Disable #UserDir public_html』 UserDir public_html 重新啟動 httpd 開放個人網站的功能

  15. 為使用者wei建立網頁目錄 #cd /home/wei #mkdir public_html/ #chown wei.wei public_html/ #cd .. #chmod 711 wei 建立個人網站目錄

  16. 確認是否關閉 SELinux #vi/etc/sysconfig/selinuxSELINUX=disabled 確認防火牆是否關閉 #service iptables stop 建立個人網站目錄

  17. 個人網頁的網址一定要有 "~" 嗎? 在網頁使用者網頁的網址時, 需要在使用者帳號名稱前面加上 “~” 。 如果個人網頁的網址要加上“~”, 可利用下面方式取消網址的 “~” 符號。 # vi /etc/httpd/conf/httpd.conf Alias /wei/ "/home/wei/public_html/"

  18. Apache 設定檔案與參數說明 (1) 主要檔案: httpd.conf 、 srm.conf 、 access.conf httpd.conf 設定檔案常見參數說明: -------------------------------------------------------------------------- ServerType - 設定啟動方式( standalone 或 inet ) ● ServerType standalone DocumentRoot - 指定 Document 目錄位置 ● DocumentRoot /usr/local/apache/htdocs ServerAdmin - 指定管理員的 e-mail 帳號 ● ServerAdmin webadm@hostname

  19. Apache 參數說明(2) User - 設定 apache daemon 常駐時使用該 UserID 工作 ● User nobody (建議可以調整成為 apache 身份) Group - 設定 apache daemon 常駐時使用該 Group 工作 ● Group noody (建議可以調整成為 apache 群組) ServerRoot - 指定 Apache 的跟目錄位置 ● ServerRoot /usr/local/apache StartServers - 設定啟動時,要建立幾個子行程常駐, 預設 5 ● StartServers 5

  20. Apache 參數說明(3) MaxClients - 設定最多產生多少行程提供服務, 最多 256 ● MaxClients 256 Listen - 設定監聽的位址 (IP、Port、IP:Port) , 能出現多次 ● Listen 80 ● Listen 111.222.111.222:80 BindAddress - 設定監聽的位址 (同 Listen,不過支援 Virtual Host),只能出現一次 ● BindAddress *

  21. Apache 參數說明(4) UserDir - 設定使用者網頁目錄位置 ● UserDir public_html www AccessFileName - 設定存取控制讀取的檔案名稱 ● AccessFilename .htaccess ErrorLog - 指定錯誤記錄檔名稱 ● ErrorLog /usr/local/apache/logs/error_log CustomLog - 指定存取的記錄檔案名稱 ● CustomLog /usr/local/apache/logs/httpd/access_log common (註: common 為 LogFormat參數所定義記錄 log 的格式)

  22. Apache參數說明(5) ScriptAlias - 建立 script 的別名路徑 ● ScriptAlias /cgi-bin /usr/local/apache/cgi-bin DirectoryIndex - 設定尋找預設首頁的檔案名稱 ●DirectoryIndex index.html index.htm index.php3 HostnameLookups – 設定是否紀錄反查連線主機名稱 ●HostnameLookups Off PIDFile – 設定紀錄 httpd 程式 pid 的檔案 ●PIDFile /var/run/httpd.pid Alias - 建立一般目錄別名路徑 ●Alias /icons /usr/local/apache/icons

  23. Apache參數說明(6) Directory 區段: <Directory “/path/dirname”> Options FllowSymlinks Indexes ExecCGI AllowOverride All Order Allow,deny Allow from xxx.xxx.xxx.xxx Deny from all </Directory>

  24. Apache參數說明(7) Directory 區段內的 Options: All : 全部打開 (預設) ExecCGI : 允許 CGI 功能機制 FllowSymlinks : 允許 symlink 檔案連結 Includes : 開啟 SSI 功能機制 IncludesNOEXEC : 開啟 SSI 機制,不過關閉 SSI 內 #exec、#include CGI 等敘述 Indexes : 若是沒有預設 index 檔案,顯示清單

  25. 允許或拒絕某些網域存取網站 Apache 伺服器有個過濾連線的功能, 它可讓您依使用者來源分類, 只有來自於所允許網域的使用者才可以瀏覽您的網頁。

  26. 適用的場合 有一些特殊的狀況, 您不希望所有的人都可以看到某些網頁: 公司內部的網頁, 只允許公司同仁 觀看不同的部門, 依工作性質的不同, 而有不同的讀取權限 拒絕惡意份子讀取網頁 私密網頁, 只開放給某些人看

  27. 修改 httpd.conf 設定檔 要限制使用者存取網站目錄的權限, 需於 Apache 的設定檔裡設定。 Ex:想限制 /var/www/html/classmate 目錄的存取權限 # vi /etc/httpd/conf/httpd.conf 最後面加入下列的內容, 拒絕 192.168.0.35、192.168.1.*、*.giga.net.tw 及 *.cn 等 4 個來源位址讀取 /var/www/html/classmate 目錄:

  28. 修改 httpd.conf 設定檔 上述的 "Order" 設定項目是指定 "allow" 與 "deny" 的優先順序。

  29. 修改 httpd.conf 設定檔 上例先讀取 “allow” 的設定內容, 再讀取 “deny” 的設定值, 如果兩項設定值抵觸, 將以後面的設定值優先。因此, 上述範例先利用 “Allow from all” 允許所有網域存取, 再使用 “Deny from 192.168.0.35 192.168.1 giga.net.tw cn” 拒絕這 4 個網域的存取。

  30. 修改 httpd.conf 設定檔 因為 “allow” 與 “deny” 的優先順序是由 “Order” 所控制的, 所以下面寫法效果與前面相同:

  31. 修改 httpd.conf 設定檔 只允許來自某個IP位址瀏覽網頁其他的來源均拒絕存取 修改好之後重啟httpd服務,若是拒絕名單中的主機存取了 /var/www/html/classmate 的網頁, 則該使用者將會看到下列的說明:

  32. 設定個人網頁的密碼保護 要將私密資料的網頁(wei.html)放在「/home/wei/public_html/other」底下 並對該網頁設定密碼檢查 ,必須在該目錄下產生 二個檔案「 .htaccess 」 及 「 .htpasswd 」 。

  33. 開啟密碼保護 # vi /etc/httpd/conf/httpd.conf 將380~391行的#全部刪除 380 <Directory /home/*/public_html> 391 </Directory>

  34. .htaccess 檔 $cd /home/wei/public_html/ $mkdir other $cd other $vi .htaccess <Limit GET> require user wei </Limit> AuthType Basic AuthName wei AuthUserFile /home/wei/public_html/other/.htpasswd

  35. 設 定 個 人 網 頁 的 密 碼 建立wei的密碼檔 $ htpasswd -c .htpasswd wei 測試

  36. 定期備份網頁 當學會 Apache 的安裝與設定, 了解如何去管理與維護網站之後, 您還必須知道怎樣備份網站內的各項資料, 以免發生意外時, 多年心血付之一炬。

  37. 備份系統網頁 備份系統網頁, 使用 tar指令來備份, 它, 請執行下列指令備份 /var/www/html 目錄裡的所有檔案資料:

  38. 備份系統網頁 備份下來的檔案, 最好存放在不同的硬碟分割區裡, 較為妥當。如能放置於其他硬碟或主機上, 則更有保障以排程指令來執行,讓系統自動備份, 隨時確保資料完整無缺。 # crontab -e指令, 加入以下內容: 指定每天早上 6 點及下午 6 點各備份一次系統網頁, 並將執行結果及錯誤訊息均導向到 /dev/null, 不寄送這些訊息。

  39. 備份使用者個人網頁 除了系統的網頁之外, 每個使用者可能也都有自己的網頁, 因此也應備份每個使用者的網頁。不過由於使用者可能在他們的家目錄下儲存自己下載的檔案, 故我們不打算備份整個 /home 目錄, 以免造成檔案過大。

  40. 備份使用者個人網頁 由於每個使用者的網頁目錄 public_html 是分散在各自的家目錄下, 可以寫一個shell script 來處理這個問題。 在 /usr/local/bin 目錄下建立一個名為 backup-html.sh 的檔案, 內容如下:

  41. 備份使用者個人網頁 第一行 #!/bin/bash 設定指令稿執行時所用的 Shell。接著利用一個for 迴圈讀取 /home 目錄下有哪些使用者, 其中 “`” 為反引號, 兩個反引號之間的指令會被替換成執行結果。

  42. 備份使用者個人網頁 而 ${i}_web 加上括號是為了避免 Shell 將變數 i 的名稱誤解為 i_web。`date + %Y%m%d` 會以系統當時的年、月、日來取代。因此壓縮之後, 檔名會類似:wei_web_20120521.tgz。

  43. 備份使用者個人網頁 # chmod 755 /usr/local/bin/backup-html.sh將該檔案設定為可執行, 然後執行 mkdir /backup指令, 建立一個目錄以存放備份檔。最後可以設定排程, 定時執行這個指令稿。請執行 crontab -e指令, 加入下列內容:

  44. 備份使用者個人網頁 要還原備分網頁時, 只要將該檔案於使用者家目錄解開即可,即可還原備份的資料。 還原 wei 的網頁:#cp wei_web_20120521.tgz /home/wei#cd /home/wei#tar zxvf wei_web_20120521.tgz

  45. 虛擬主機 (Virtual Host) (1) 虛擬主機部分,在 Apache 設定主要可以區分: Name-based Virtual Hosts IP-based Virtual Hosts Name-Based Virtual Hosts : 單一 IP 上,多個 WebSite 主機名稱 IP-Based Virtual Hosts: 不同 IP 上,每個 IP 各有其 WebSite 主機

  46. 虛擬主機 (Virtual Host) (2) Name-Based Virtual Hosts 設定範例: NameVirtualHost 111.22.33.44  Name-Based 需要 <VirtualHost 111.22.33.44> ServerName www.abc.com.tw ServerAdmin root@www.abc.com.tw DocumentRoot /www/domain/www.abc.com.tw DirectoryIndex index.html index.htm index.php3 ErrorLog /var/log/httpd/www.abc.com.tw_error_log TransferLog /var/log/httpd/www.abc.com.tw_access_log </VirtualHost>

  47. 虛擬主機 (Virtual Host) (3) IP-Based Virtual Hosts 設定範例: <VirtualHost www.xxx.com.tw> ServerName www.xxx.com.tw ServerAdmin root@www.xxx.com.tw DocumentRoot /www/domain/www.xxx.com.tw DirectoryIndex index.html index.htm index.php3 ErrorLog /var/log/httpd/www.xxx.com.tw_error_log TransferLog /var/log/httpd/www.xxx.com.tw_access_log </VirtualHost>

  48. 相關網站文件與書籍 Apache 的網站 http://www.apache.org http://httpd.apache.org/docs/ Apache 參考網站 http://linux.vbird.org/linux_server/0360apache.php

More Related