阿帕奇服務(wù)器配置方案
apach 服務(wù)器配置大全 (1)2011-09-16 23:02:00 www.hackbase.com 來源:一、資料參考與準(zhǔn)備: Apache 軟件包的組成 /etc/httpd/c
apach 服務(wù)器配置大全 (1)
2011-09-16 23:02:00 www.hackbase.com 來源:
一、資料參考與準(zhǔn)備: Apache 軟件包的組成 /etc/httpd/conf/*
一、資料參考與準(zhǔn)備:
Apache 軟件包的組成
/etc/httpd/conf/*
主配置文件位置
/etc/rc.d/init.d/httpd
啟動腳本
/home/httpd/html
html 文檔的主目錄
/home/httpd/html/manual/*
html 格式的幫助文檔
/home/httpd/icons/*
用在html 網(wǎng)頁中的圖標(biāo)文件
/usr/sbin/*
-/usr/sbin/htpasswd
建立和更新apache 用戶的程序
-/usr/sbin/httpd
/var/log/httpd/*
日志文件
主配置文件httpd.conf 的常用指令解釋
ServerType standalone
#設(shè)置服務(wù)器的形式是單獨(dú)啟動(standalone ),還是借由互聯(lián)網(wǎng)絡(luò)伺服程序inetd 來啟動。一般使用前者。
ServerRoot "/usr/local/apache"
#設(shè)置服務(wù)器的Home 目錄,用來存放服務(wù)器的設(shè)置文件、錯(cuò)誤文件、記錄文件。 PidFile logs/httpd.pid
#程序啟動時(shí),把父進(jìn)程httpd 的進(jìn)程號(process id)存在這個(gè)文件中。這個(gè)文件名可以配合PidFile 指令加以改變。
ScoreBoardFile logs/apache_status
#設(shè)置網(wǎng)絡(luò)上WWW 服務(wù)器一些執(zhí)行程序的記錄文件。
#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf
#這兩個(gè)文件的內(nèi)容已經(jīng)包含在httpd.conf 文件中了。
Timeout 300
#如果客戶端300秒還沒有連上,或者服務(wù)器300秒還沒有傳送數(shù)據(jù)到客戶端,就會自動斷線。 KeepAlive On
#設(shè)置是否支持續(xù)傳功能。
,MaxKeepAliveRequests 100
#設(shè)置支持續(xù)傳功能的數(shù)目。數(shù)目越多則浪費(fèi)的硬盤空間越多。設(shè)置為0則不止持續(xù)傳。 KeepAliveTimeout 15
#如果該為使用者在15秒后還沒有向服務(wù)器發(fā)出要求,則他在不能續(xù)傳。
MaxRequestsPerChild 0
#設(shè)置同時(shí)間內(nèi)child process數(shù)目。
TtesteadsPerChild 50
#設(shè)置服務(wù)器使用進(jìn)程的數(shù)目。
#Listen 3000
#Listen 12.34.56.78:80
#允許使用其它的Port 或IP 訪問服務(wù)器。此例中Port 為3000,IP 為12.34.56.78:80。 #BindAddress *
#設(shè)置Apache 監(jiān)聽所有的IP ,也可以具體的指定。
#LoadModule anon_auth_module modules/ApacheModuleAuthAnon.dll
……
#打開當(dāng)前未激活預(yù)定以的模塊。
#ExtendedStatus On
#設(shè)置服務(wù)器產(chǎn)生的狀態(tài)信息。
Port 80
#設(shè)置服務(wù)器使用的Port 。
ServerAdmin you@your.address
#設(shè)置服務(wù)器管理者的E-Mail 地址。
#ServerName new.host.name
#服務(wù)器的主機(jī)名。如果你有固定的IP 地址,則不需要設(shè)置。
DocumentRoot "/usr/local/apache/htdocs"
#設(shè)置存放站點(diǎn)html 文件的目錄。
Options FollowSymLinks
AllowOverride None
#設(shè)置/目錄的指令。具體地說明:
Option :定義在目錄內(nèi)所能執(zhí)行的操作。
None :表示只能瀏覽,
FollowSymLinks :允許頁面連接到別處,
ExecCGI :允許執(zhí)行CGI ,
MultiViews :允許看動畫或是聽音樂之類的操作,
Indexes :允許服務(wù)器返回目錄的格式化列表,
Includes :允許使用SSI 。這些設(shè)置可以復(fù)選。
All :則可以做任何事,但不包括MultiViews 。
AllowOverride :加None 參數(shù)表示任何人都可以瀏覽該目錄下的文件。
另外的參數(shù)有:FileInfo 、AuthConfig 、Limit 。
UserDir public_html
#定義使用者存放html 文件的目錄。
DirectoryIndex index.html
,#定義首先顯示的文件。
AccessFileName .htaccess
#定義每個(gè)目錄訪問控制文件的名稱。
#CacheNegotiatedDocs
定義代理服務(wù)器不要Cache 你的頁面。不建議使用。
UseCanonicalName On
#服務(wù)器使用ServerName 指定的服務(wù)器名和Port 指定的端口地址。
二、安裝與配置
apache 安裝
$ tar xvf httpd-*.tar
$ ./configure --prefix=PREFIX
$ make Install
$ make install
常用關(guān)鍵配置
·vi /etc/httpd/conf/httpd.conf
Listen 80
Include conf.d/*.conf
ServerRoot "/etc/httpd"
DocumentRoot "/var/www/html"
ServerAdmin root@mai.xuanfei.net
ServerName 10.45.63.188:80
用戶認(rèn)證
假如某一目錄下的文件如/home/ftp/pub需要做到用戶認(rèn)證 創(chuàng)建認(rèn)證用戶
@htpasswd –c /*/.password xuanfei
創(chuàng)建認(rèn)證組
@vi /*/.group
xuanfei-group:xuanfei xuanfei1
一。 基本的Apache 用戶認(rèn)證方法:
在httpd.conf 中加入下面的行
<>
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
<>
或者加到 /etc/httpd/conf.d/ 新建個(gè)文件名為。conf 結(jié)尾的配置文件 〈Directory /home/ftp/pub>
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
〈/Directory>
用在目錄/home/ftp/pub下放文件。htaccess ,內(nèi)容如下:
,authname "shared files"
authtype basic
authuserfile /*/.password
require valid-user
#require group xuanfei-group //接收組所以用戶
#requirre user xuanfei //接收xuanfei 單個(gè)用戶
用隨Apache 來的程序htpasswd 生成文件/etc/.passwd,每行一個(gè)用戶名:密碼 只要能提供正確的用戶名和密碼對,就允許登錄訪問,這是針對任何地址來的 請求都要求提供用戶名和密碼認(rèn)證。
二。針對部分網(wǎng)段或地址要求認(rèn)證。
若公司LAN 所在網(wǎng)段為10.45.63.0/24,且有一防火墻專線接入Internet,
內(nèi)部網(wǎng)卡的地址為10.45.63.1/32,則現(xiàn)在希望所有通過撥本地633通過
防火墻上的apache 反向代理向LAN 上的另一WWW 服務(wù)器訪問時(shí)需要認(rèn)證,而本地 LAN 上的用戶不需認(rèn)證??梢栽趆ttpd.conf 中放入:
〈Directory /home/ftp/pub>
Options Indexes FollowSymLinks
AllowOverride AuthConfig
order deny,allow
deny from 10.45.63.1
〈/Directory>
且在/home/ftp/pub/.htaccess中放入:
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
require valid-user
satisfy any
三。對同一目錄及其下的子目錄有不同的權(quán)限,僅某些人可以存取一目錄下的 子目錄。
如有一目錄/home/ftp/pub/host,有三個(gè)用戶user1,user2,user3都需要用戶名 和密碼進(jìn)入/home/ftp/pub,但僅user1,user2能進(jìn)入/home/ftp/pub/host.則
放下面的行到httpd.conf
〈Directory /home/ftp/pub>
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
〈/Directory>
〈Directory /home/ftp/pub/host>
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
〈/Directory>
且看/home/ftp/pub/.htaccess為:
,AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
require valid-user
且看/home/ftp/pub/host/.htaccess
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
AuthGroupFile /etc/.hostgroup
require group manager
且文件/etc/.passwd內(nèi)容為:
user1:passwd1
user2:passwd2
user3:passwd3
且文件/etc/.hostgroup內(nèi)容為:
manager: user1 user2
虛擬目錄
#vi /etc/httpd/conf.d/xuanfei.conf
Alias /xuanfei /home/xuanfei
(設(shè)置虛擬目錄屬性)
Options Indexes MultiViews
(當(dāng)沒有主頁時(shí)以是否顯示文件及文件夾)
AllowOverride None
Order allow,deny
Allow from all
虛擬主機(jī)設(shè)置
簡介:這里說的虛擬主機(jī)是指在一臺機(jī)器上僅運(yùn)行一個(gè)httpd 后臺程序 支持多個(gè)Apache 服務(wù)器,如在公司財(cái)務(wù)部門有一臺web 服務(wù)器,名為 account.xuanfei.net, 同時(shí)又想為host 部門建立網(wǎng)站,網(wǎng)站內(nèi)容也 放在該機(jī)器上,通過host.xuanfei.net 訪問,這就要用到虛擬主機(jī) 設(shè)置。
設(shè)置Apache 虛擬主機(jī)通常有兩種方案
一、基于IP 的虛擬主機(jī)
這種方式需要在機(jī)器上設(shè)置IP 別名,象上面的例子,在一臺機(jī)器的 網(wǎng)卡上綁定多個(gè)IP 地址去服務(wù)多個(gè)虛擬主機(jī)。
若該機(jī)器的IP 地址為10.45.63.2(account.xuanfei.net ), 首先
你要設(shè)置IP 別名(假設(shè)用10.45.63.4作為其別名IP )。加下面的行到 /etc/rc.d/rc.local,確保每次啟動后自動運(yùn)行。
#/sbin/ifconfig eth0:0 10.45.63.4 netmask 255.255.255.0 broadcast 10.45.63.255 up
#/sbin/route add -host 10.45.63.4 eth0:0
然后你需要設(shè)置/etd/httpd/conf/httpd.conf文件:
ServerAdmin root@xuanfei.net
,DocumentRoot /home/httpd/host.xuanfei.net
ServerName host.xuanfei.net
ErrorLog /var/log/httpd/host.xuanfei.net/error_log
TransferLog /var/log/httpd/host.xuanfei.net/access_log
然后分別創(chuàng)建目錄
/home/httpd/host.xuanfei.net,
/var/log/httpd/host.xuanfei.net
, 放相應(yīng)的網(wǎng)站內(nèi)容到目錄/home/httpd/host.xuanfei.net下即可,并確保 你內(nèi)部的DNS 指定host.xuanfei.net 的A 記錄到IP 地址10.45.63.4 。
注:這種基于IP 的虛擬主機(jī)有一個(gè)缺點(diǎn),就是你需要更多的IP 地址去服務(wù)各自的 虛擬主機(jī),如果你僅僅有一個(gè)IP 地址,那么你將可以考慮用基于名字的虛擬主機(jī) 方案。
二、基于名字的虛擬主機(jī):
它的優(yōu)勢就是不需要更多的IP 地址,容易配置,不需要其它軟硬件,現(xiàn)代的 瀏覽器大多都支持這種方式。與基于IP 的虛擬主機(jī)一樣,你需要編輯文件 /etc/httpd/conf/httpd.conf
NameVirtualHost 10.45.63.2
ServerAdmin root@xuanfei.net
DocumentRoot /home/httpd/host.xuanfei.net
ServerName host.xuanfei.net
ErrorLog /var/log/httpd/host.xuanfei.net/error_log
TransferLog /var/log/httpd/host.xuanfei.net/access_log
ServerAdmin root@xuanfei.net
DocumentRoot /home/httpd/test.xuanfei.net
ServerName test.xuanfei.net
ErrorLog /var/log/httpd/test.xuanfei.net/error_log
TransferLog /var/log/test.xuanfei.net/access_log
注: 你需要加NameVirtualHost 指示在最前面,下面依次為各個(gè)虛擬主機(jī), 為了讓它工作,你需要把host.xuanfei.net, test.xuanfei.net的DNS
都指向IP 地址10.45.63.2
上面的兩種都將工作,如果是在外部網(wǎng)段,在互聯(lián)網(wǎng)上提供WWW 服務(wù),你可能 沒有足夠的真實(shí)IP 地址來支持多個(gè)虛擬主機(jī),便可用基于名字的虛擬主機(jī)方案, 若是在內(nèi)部網(wǎng)段上,你有較多的內(nèi)部保留IP 地址,將沒有太大的區(qū)別。 NameVirtualHost 11.22.33.44 ; 在這個(gè)IP 地址接收虛擬主機(jī)的服務(wù)
tualHost 111.222.33.44> ServerName www.xuanfei1.com DocumentRoot /www/xuanfei1 ServerName www.xuanfei2.com DocumentRoot /www/xuanfei2 三、基于端口的虛擬主機(jī): ServerName www.xuanfei1.com DocumentRoot /www/xuanfei1 ServerName www.xuanfei2.com DocumentRoot /www/xuanfei2 此種方法應(yīng)用相對沒那么方便!所以相對應(yīng)用也少點(diǎn)!不同之處就是要在其域名或者IP 后面添加其端口。 基于CGI 的配置 要讓CGI 程序能正常運(yùn)作,必須配置Apache 以允許CGI 的執(zhí)行,其方法有多種。 ScriptAlias ScriptAlias 指令使Apache 允許執(zhí)行一個(gè)特定目錄中的CGI 程序。當(dāng)客戶端請求此特定目錄中的資源時(shí),Apache 假定其中文件都是CGI 程序并試圖運(yùn)行。 ScriptAlias 指令形如: ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/ 如果Apache 被安裝到默認(rèn)的位置,默認(rèn)的配置文件httpd.conf 中則會有上述配置。ScriptAlias 指令定義了映射到一個(gè)特定目錄的URL 前綴,與Alias 指令非常相似,兩者一般都用于指定位于DocumentRoot 目錄以外的目錄,其區(qū)別是ScriptAlias 又多了一層含義,即其URL 前綴中任何文件都被視為CGI 程序。所以,上述例子會指示Apache ,/cgi-bin/應(yīng)該指向/usr/local/apache/cgi-bin/目錄,且視之為CGI 程序。 舉例,如果有URL 為http://www.example.com/cgi-bin/test.pl的請求,Apache 會試圖執(zhí)行/usr/local/apache/cgi-bin/test.pl文件并返回其輸出。當(dāng)然,這個(gè)文件必須存在而且可執(zhí)行,并以特定的方法產(chǎn)生輸出,否則Apache 返回一個(gè)出錯(cuò)消息。 ScriptAlias 目錄以外的CGI 由于安全原因,CGI 程序通常被限制在ScriptAlias 指定的目錄中,如此,管理員就可以嚴(yán)格地控制誰可以使用CGI 程序。但是,如果采取了恰當(dāng)?shù)陌踩椒ù胧瑒t沒有理由不允許其他目錄中的CGI 程序運(yùn)行。比如,你可能希望用戶在UserDir 指定的宿主目錄中存放頁面,而他們有自己的CGI 程序,但無權(quán)存取cgi-bin 目錄,這樣,就產(chǎn)生了運(yùn)行其他目錄中CGI 程序的需求。 用Options 顯式地允許CGI 的執(zhí)行 可以在主服務(wù)器配置文件中,使用Options 指令顯式地允許特定目錄中CGI 的執(zhí)行: Options ExecCGI 上述指令使Apache 允許CGI 文件的執(zhí)行。另外,還必須告訴服務(wù)器哪些文件是CGI 文件。下面的AddHandler 指令告訴服務(wù)器所有帶有cgi 或pl 后綴的文件是CGI 程序: AddHandler cgi-script cgi pl .htaccess 文件 .htaccess 文件是針對目錄進(jìn)行配置的一種方法。Apache 在提供一個(gè)資源時(shí),會在此資源所在目錄中尋找。htaccess 文件,如果有,則使其中的指令生效。AllowOverride 指令決定了。htaccess 文件是否有效,它指定了哪些指令可以出現(xiàn)在其中,或者根本不允許使用。為此,需要在主服務(wù)器配置中如此配置: AllowOverride Options 在。htaccess 文件中,需要如此配置: Options ExecCGI 以使Apache 允許此目錄中CGI 程序的執(zhí)行。 從網(wǎng)絡(luò)訪問CGI 程序,瀏覽器中可能會發(fā)生四種情況: CGI 程序的輸出 太好了!這說明一切正常。 CGI 程序的源代碼或者一個(gè)"POST Method Not Allowed"消息 這說明Apache 沒有被正確配置以執(zhí)行CGI 程序,重新閱讀configuring Apache 看看遺漏了什么。 一個(gè)以"Forbidden" 開頭的消息 這說明有權(quán)限問題。參考Apache error log和下面的文件的權(quán)限。 一個(gè)"Internal Server Error"消息 查閱Apache error log ,可以找到CGI 程序產(chǎn)生的出錯(cuò)消息"Premature end of script headers" 。對此,需要檢查下列各項(xiàng),以找出不能產(chǎn)生正確HTTP 頭的原因。 文件的權(quán)限 記 住,服務(wù)器不是以你的用戶身份運(yùn)行的,就是說,在服務(wù)器啟動后,擁有的是一個(gè)非特權(quán)用戶的權(quán)限-通常是``nobody''或者``www'' -而需要更大的權(quán)限以允許文件的執(zhí)行。通常,給予``nobody''足夠的權(quán)限以執(zhí)行文件的方法是,對文件賦予everyone execute權(quán)限: 基于PERL 的配置 先用perl -v命令檢查是否已安裝了perl, 如果不能出現(xiàn)版本號,先安裝perl 進(jìn)入apache 配置文件,如果要運(yùn)行perl 寫的cgi 程序,寫上:ScriptAlias /cgi-bin/ "cgi-bin所在目錄" ,linux 的cgi-bin 目錄默認(rèn)在/var/www/cgi-bin/;如果要運(yùn)行。pl 文件,則加上: AddHandler cgi-script .pl 修改/etc/http/conf.d/perl.conf文件,將以下內(nèi)容前的#號去掉 Alias /perl /var/www/perl Sethandler perl-script Perresponsehandler modperl::registry Perloptions parseheaders ptions ExecCGI 基于JSP 的配置 jakarta-tomcat-4.0下載地址: 安裝步驟: JDK: 1)將安裝程序復(fù)制到 /usr/local目錄下 2)執(zhí)行命令: ./j2sdk-1_4_2_01-linux-i586.bin 解壓后得到目錄j2sdk-1.4.2_01,將目錄名改為j2sdk-1.4.2,不然后面的操作會無效。 3)依次執(zhí)行下列命令: ln -s j2sdk-1.4.2 jdk ln -s jdk/jre jre 4)設(shè)置環(huán)境變量 vi /etc/profile 加入如下內(nèi)容: export JAVA_HOME=/usr/local/jdk export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar PATH=$PATH:/usr/local/j2sdk1.4.2/bin 5)測試JDK 是否安裝成功 cd /etc javac 如果出現(xiàn)關(guān)于javac 的使用說明,表示安裝成功。 TOMCAT: 1)將安裝程序復(fù)制到 /usr/local目錄下 2)執(zhí)行命令: tar -zxvf jakarta-tomcat-5.0.19.tar.gz 解壓后得到目錄jakarta-tomcat-5.0.19 3)設(shè)置環(huán)境變量 vi /etc/profile 加入如下內(nèi)容: export TOMCAT_HOME=foo/tomcat 4)進(jìn)入 /usr/local/jakarta-tomcat*/bin vi shutdown.sh 添加 export JAVA_HOME=/usr/jdk export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=$JAVA_HOME/lib 執(zhí)行: ./startup.sh start 啟動tomcat 服務(wù)器 5)測試是否安裝成功 用瀏覽器瀏覽http://localhost:8080 如果出現(xiàn)tomcat 的歡迎頁面,表示安裝成功。 Apache 和tomcat 的整合 安裝和配置mod_jk2 #cp etc/httpd/conf.d/jk2.conf /etc/httpd/conf.d/ #cp usr/lib/httpd/modules/* /usr/lib/httpd/modules/ #cp –a usr/share/doc/mod_jk2/ /usr/share/doc/mod_jk2/ #cp –a var/www/manual/mod_jk2/ /var/www/manual/mod_jk2/ b)、 編輯mod_jk2配置文件 #vi /etc/httpd/conf/workers2.properties 在末尾加入以下語句: [uri:/*.jsp] worker=ajp13:localhost:8009 c )、配置Tomcat Tomcat 默認(rèn)的主目錄/usr/local/tomcat/webapps/ROOT/ 需要設(shè)置和 Apache 的主目錄一致; 編輯T omcat 主配置文件: #vi /usr/local/tomcat/conf/server.xml 找到 重新啟動Apache 和T omcat #/etc/init.d/httpd restart #/usr/local/tomcat/bin/shutdown.sh#/usr/local/tomcat/bin/startup.sh 測試Apache 和T omcat 整合 在Apache 主目錄(/var/www/html/)中建立Test.jsp 文件內(nèi)容如下: Hello! Welcom to here The time is <= new java.util.Date() > 在瀏覽器中輸入http://10.45.63.35/test.jsp 出現(xiàn)下面信息頁面,代表Apache 和Tomcat 整合運(yùn)行環(huán)境配置成功。 三、啟用與測試 啟動apache [root@localhost]#/etc/rc.d/init.d/httpd start 關(guān)閉apache [root@localhost]#/etc/rc.d/init.d/httpd stop 重新啟動apache [root@localhost]#/etc/rc.d/init.d/httpd restart 在瀏覽器輸入:http://www.xuanfei.net 四、小結(jié) Apache 慢慢地已經(jīng)成為Internet 上最流行的Web 服務(wù)器軟件了。在所有的Web 服務(wù)器軟件中,Apache 占據(jù)絕對優(yōu)勢,遠(yuǎn)遠(yuǎn)領(lǐng)先排名第二的Microsoft IIS 本問還很多相關(guān)的安全配置 性能優(yōu)化 負(fù)載均衡等等多方面還未涉及,這只是個(gè)開始,望日后繼續(xù)努力更新!本文網(wǎng)上眾多網(wǎng)友的文章整合而成,如以上內(nèi)容有誤或有不足之處,望朋友能給予意見或者建議!謝謝:)