Apache 如何使用基礎篇

來源:互聯網
上載者:User

 Apache是目前世界上最經常使用的Web伺服器.對於Linux使用者來說,也是最容易使用的 Web伺服器,而且,它是免費的.實際上,如果你僅僅是想要用Apache提供基本的Web頁面服務, 那麼你可能根本不需要調整任何配置.但是,在另一方面, Apache是一個十分強大的程式, 能夠提供許多專業的功能,為了發揮它的功能, 你還是必須瞭解一點兒關於它的配置.
  
  首先, 如果你在一個非Linux的網站上使用Apache,或者你的網站負擔很重(比如,1000 個以上的同時串連),那麼,通常你必須重新編譯Apache,這個問題我們不在此處介紹.
  
  (1)開始提供Web服務
  
  Apache的服務有兩種方式,即通過inetd的方式或者獨立執行httpd的方式.在一般情況 下我們使用獨立執行方式. 首先你必須安裝Apache伺服器.通常的Linux 發行版中都會包含apache的rpm包,可 以用rpm -i 安裝.然後你要測試一下它的正確.隨便取一個HTML檔案,命名為index.html, 拷貝到/home/httpd/html目錄下,然後以根使用者身份執行httpd,接下來,在另一台機器上 用Browser訪問你這台機器的IP地址,應該能顯示其內容.如果不對,檢查你的工作,重來 一次.
  
  Apache預設的時候使用的分頁檔是index.html,錯誤輸出在/var/log/httpd/,如果 有不正常的問題,察看裡面的error_log檔案.
  
  許多時候,你需要改變web檔案的存放位置,或是為web頁面引入一些cgi服務,為此,你必須 去修改/etc/httpd/conf/srm.conf檔案. 首先,你會發現下面的段落:
  
  DocumentRoot /home/httpd/html
  
  這個句子說明,Apache使用的分頁檔存放在/home/httpd/html,所以如果你要改變web 的存放路徑就應該修改這裡.
  
  另一個相應的段落是
  
  DirectoryIndex index.html index.shtml index.cgi
  
  它說明如果有人訪問你的機器,首頁將是在上面定義的路徑下的index.html或者index. shtml,index.cgi.如果你的網站首頁是另外一個名字,修改這一句.
  
  另一個常用的選項是
  
  ScriptAlias /cgi-bin/ /home/httpd/cgi-bin/
  
  它定義在使用CGI程式時,頁面引用的目錄是/cgi-bin/,而實際存放的路徑是 /home/httpd/cgi-bin/
  
  (2)利用apache做Web Proxy
  
  Proxy就是代理.Apache的web 代理是指可以讓用戶端伺服器通過Apache來訪問WWW, 這樣,Apache伺服器將接收來自客戶機器的請求,然後首先去目標網站取得內容,並將內 容儲存在Apache伺服器上,然後再提交給客戶.以後假如有另一個客戶機需要訪問同樣 的內容,Apache就會直接從伺服器硬碟上取得內容並且提交給客戶.
  
  要使用Apache Proxy,需要編輯/etc/httpd/conf/httpd.conf,假定你的Apache機器地址 為111.111.111.111,代理連接埠為8080(通常應選擇大於1024的值),需要更改的段落有
  
  Listen 111.111.111.111 8080 #開啟8080連接埠
  
  ProxyRequest On #啟動Proxy服務

CacheRoot /var/cache/httpd #預設的Proxy Cache 目錄,必須是可寫的目錄
  
  CacheSize 2000 #Cache的大小,單位是KB,設大一點兒對你無害,對嗎?
  
  CacheGcInterval 48 #每隔多少小時自動清理cache,把超出cache空間的垃圾刪除
  
  CacheMaxExpire 24 #Cache的最大有效期間,或者說Cache最多可以落後於時代多少小時
  
  CacheDefaultExpire 4 #預設的Cache有效期間,單位是小時
  
  ProxyRemote http://something.com http://otherproxy.com:8080/
  
  #對於到http://something.com的訪問,自動去調用定義在otherproxy.com:8080 的另一個Web Proxy,
  
  #也可以用ProxyRemote ftp http://otherproxy.com:8080/
  
  #定義一個專門對ftp的Proxy級聯.
  
  NoProxy .mydomain.com 111.111.111.0/24
  
  #對於來自111.111.111.1-111.111.111.254的並且指向*.mydomain.com的請求不使用代理,
  
  #這可以使cache只對外部網有效.
  
  接下來,你應該設定僅自己的內部使用者才能使用Proxy,這需要修改/etc/httpd/conf/access.conf
  
  加入以下段落:
  
   #Proxy 存取限制
  order allow,deny #順序:預設禁止
  allow 111.111.111.0/24 #允許111.111.111.0-111.111.111.254使用,

  #/24是指網路遮罩是24個1,即255.255.255.0
   #段落結束
  
  現在,重新啟動httpd,然後設定你的客戶機,將Proxy 伺服器設成111.111.111.111:8080 就行了.
  
  (3)虛擬機器主機
  
  Apache的名字虛擬機器主機是一項不錯的功能,它可以用一台Apache機器,一個IP來提供多個 頁面,設定非常簡單,你需要編輯/etc/httpd/conf/httpd.conf,假定有兩個名字: a.domain.com和b.domain.com都指向111.111.111.111(注意,用CNAME產生的兩個重合 的名字只能作一個來算,要作虛擬機器主機,你必須在網域名稱中定義兩個記錄),那麼你可以添 加下面的段落:
  
  Listen 111.111.111.111 80
  
  NameVirtualHost 111.111.111.111:80 #說明111.111.111.111是一台虛擬機器主機
  
   #第一個虛擬機器主機
  ServerName a.domain.com #虛擬機器主機名
  DocumentRoot /home/httpd/html/a.domain.com/ #a.domain.com的首頁檔案的存放地址
  Errorlog /var/log/a.log #錯誤資訊記錄
  ServerAdmin mastera@domain.com #管理員的郵件地址(可選)

#段落結束
   #第二個 ServerName b.domain.com
  DocumentRoot /home/httpd/html/b.domain.com/
  Errlog /var/log/b.log
  ServerAdmin masterb@domain.com
  
  
  同上 設定結束後,重新啟動httpd.
  順便說一句,如果你要給每個虛擬使用者配置CGI指令碼怎麼辦。簡單啦,就是在有關這個使用者的
  
  〈VirtualHost〉段落中加入ScriptAlias 段落,例如,這樣:
  
  ScriptAlias /cgi-bin/ /home/httpd/html/a.domain.com/cgi-bin/
  
  這樣以後象http://a.domian.com/cgi-bin/的引用就自動轉向到/home/httpd/html/a.domain.com/cgi-bin/
  
  下了。當然象DirectoryIndex之類的也可以放進去,呵呵.
  
  (4)其他說明
  
  現在有一個名叫commanche的程式,可以通過Web頁面對Apache進行管理,不過我還是喜歡直接修改設定檔,有問題比較好處理,呵呵.
  
  另外一個重要的問題是,假如你允許別人使用你的伺服器來發布web頁面,那麼你必須小心, /etc/httpd/conf/httpd.conf中有一個十分重要的段落是
  
  User nobody
  
  Group nobody
  
  它定義系統在httpd存取時使用nobody許可權,這可以避免許多安全性問題,絕對不要將它設成root!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.