WebServer常用的有Apache、IIS、nginx、Tomcat
- Apache HTTP服務(wù)器是一個模塊化的服務(wù)器,可以運行在幾乎所有廣泛使用的計算機平臺上。其屬于應(yīng)用服務(wù)器。Apache支持支持模塊多,性能穩(wěn)定,Apache本身是靜態(tài)解析,適合靜態(tài)HTML、圖片等,但可以通過擴展腳本、模塊等支持動態(tài)頁面等。
- IIS是一種web服務(wù)組件,其中包括Web服務(wù)器、FTP服務(wù)器、NNTP服務(wù)器和SMTP服務(wù)器,分別用于網(wǎng)頁瀏覽、文件傳輸、新聞服務(wù)和郵件發(fā)送等方面,它使得在網(wǎng)絡(luò)上發(fā)送信息成為一件很容易的事。但IIS只能運行在Windows平臺。
- Nginx是一款輕量級的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器。由俄羅斯的程序設(shè)計師Igor Sysoev所開發(fā),供俄國大型的入口網(wǎng)站及搜索引擎Rambler(俄文:Рамблер)使用。其特點是占有內(nèi)存少,并發(fā)能力強,而且支持負載均衡,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。
- Tomcat 是由 Apache開發(fā)的一個Servlet容器,實現(xiàn)了對Servlet 和 JSP的支持,并提供了作為Web服務(wù)器的一些特有功能,如Tomcat管理和控制平臺、安全域管理和Tomcat閥等??梢哉J為是Apache的擴展,但是可以獨立于Apache運行。 實際使用中Apache與Tomcat常常是整合使用。如果客戶端請求的是靜態(tài)頁面,則只需要Apache服務(wù)器響應(yīng)請求。 如果客戶端請求動態(tài)頁面,則是Tomcat服務(wù)器響應(yīng)請求。 因為JSP是服務(wù)器端解釋代碼的,這樣整合就可以減少Tomcat的服務(wù)開銷??梢岳斫釺omcat為Apache的一種擴展。
以RedHat Linux 6為例
首先簡單的部署一下Apache網(wǎng)站
-
第一步: 源碼編譯及安裝
下載好源碼包百度網(wǎng)盤 密碼:0x96
- apr-1.4.6.tar.gz
- apr-util-1.4.1.tar.gz
- http-2.4.2.tar.gz
其中apr、apr-util軟件包支持Apache上層應(yīng)用跨平臺,提供底層接口庫
1. 解壓apr、apr-util、http軟件包至/opt目錄下
.tar.gz -C /opt tar zxvf apr-util-.tar.gz -C /opt tar zxvf http-
2. 將解壓后的apr、apr-util軟件包復(fù)制到http軟件包的srclib目錄下
cp -R apr/srclib/apr cp -R apr-util
3. 安裝編譯環(huán)境軟件 包gcc 、 gcc-c++ 、 make 、 pcre、pcre-devel,pcre 是 一個Perl庫,支持正則表達式(用yum倉庫安裝)
創(chuàng)建yum倉庫的步驟詳細步驟請參考 Linux下通過rdesktop遠程登陸Windows系統(tǒng)
4. 根據(jù)服務(wù)器的實際需要,靈活設(shè)置不同的定制選項,如指定安裝路徑,啟用字符集支持等。
./configure
–prefix=/usr/local/httpd
–enable-so
–enable-rewrite
–enable-charset-lite
–enable-cgi
上述的配置命令中,各選項的含義如下:
- –prefix: 指定將httpd服務(wù)程序安裝到哪個目錄下。
- –enable-so: 啟用動態(tài)加載模塊支持,使httpd具備進一步擴展功能的能力。
- –enable-rewrite: 啟用網(wǎng)頁地址重寫功能,用于網(wǎng)站優(yōu)化及目錄遷移維護。
- –enable-charset-lite: 啟用字符集支持,以便支持使用各種字符集編碼的網(wǎng)頁。
—enable-cgi: 啟用CGI腳本程序支持,便于擴展網(wǎng)站的應(yīng)用訪問能力。
5. 編譯及安裝
完成配置以后,執(zhí)行“make”命令進行編譯,將源代碼轉(zhuǎn)換成可執(zhí)行的程序,然后執(zhí)行“make install”命令完成最后安裝過程,其中make的過程可能需要較長的時間。
make install
6.確認安裝結(jié)果
bin build cgi-bin conf error htdocs icons
- /usr/local/httpd/bin: 存放httpd服務(wù)的各種可執(zhí)行程序文件,包括主程序httpd、服務(wù)控制工具apachectl.
- /usr/local/httpd/conf: 存放httpd服務(wù)的各種配置文件,包括主配置文件httpd.conf、增強配置子目錄extra等。
- /usr/local/httpd/htdocs: 存放網(wǎng)頁文檔,包括默認首頁等。
- /usr/local/httpd/logs: 存放httpd服務(wù)的日志文件。
- /usr/local/httpd/modules: 存放httpd服務(wù)的各種模塊文件。
- /usr/local/httpd/cgi-bin: 存放各種CGI程序文件。
7.添加httpd系統(tǒng)服務(wù)
為了便于通過chkconfig進行管理httpd系統(tǒng)服務(wù),需要建立可控的服務(wù)腳本??梢詫pachectl腳本復(fù)制為/etc/init.d/httpd,并在文件的開頭添加chkconfig識別配置。
vim /etc/init.d/httpd //在文件的開頭添加
chkconfig chkconfig
-
第二步: 配置并啟動httpd服務(wù)
1. 建立軟鏈接方便管理配置文件
/etc/httpd.conf www.benet.com //設(shè)置網(wǎng)站名稱 192.168.10.10:80 //監(jiān)聽web服務(wù)器本機的IPV4地址
2.檢查配置文件的語法
使用帶“-t”選項的apachectl命令對配置內(nèi)容進行語法檢查,顯示“Syntax OK”說明沒有語法錯誤。
[root@RedHat6 Syntax OK
3.啟動httpd服務(wù)
正常啟動httpd服務(wù)以后,默認將監(jiān)聽tcp協(xié)議的80端口。
[root@RedHat6- tcp
-
第三步:測試Apache網(wǎng)站
關(guān)閉Apache服務(wù)器的防火墻
接下來對Apache網(wǎng)站實現(xiàn)訪問控制
為了更好地控制對網(wǎng)站資源的訪問,可以為特定的網(wǎng)站目錄添加訪問授權(quán)。
-
客戶機地址限制
通過配置項Order、Deny from 、Allow from,可以根據(jù)客戶機的主機名或ip地址決定是否允許客戶端訪問。其中Order配置項用于設(shè)置限制順序,Deny from和Allow from配置項用于設(shè)置具體限制內(nèi)容。
vim /etc/httpd.conf <Directory > ........ Order deny,allow Deny </Directory>
用客戶機ip地址是192.168.10.0網(wǎng)段測試
-
用戶授權(quán)限制
基于用戶的訪問控制包含認證和授權(quán)兩個過程,認證是識別用戶身份的過程,授權(quán)是允許特定用戶訪問特定目錄區(qū)域的過程。下面以基本認證方式為例,添加用戶授權(quán)限制。
1. 創(chuàng)建虛擬網(wǎng)站目錄(/opt/test)
[root@RedHat6
2. 創(chuàng)建用戶數(shù)據(jù)認證文件
使用專門的htpasswd工具創(chuàng)建授權(quán)用戶數(shù)據(jù)文件,必須指定用戶數(shù)據(jù)文件的位置。
New password: 根據(jù)提示設(shè)置密碼 Re-type password: Adding password user zhangsan [root@RedHat6 zhangsan:
3. 添加用戶授權(quán)配置
有了授權(quán)賬號以后,還需要加載一個獨立的配置文件,使其能在特定的目錄區(qū)域中添加授權(quán)配置,以啟用基本認證等。
[root@RedHat6 Alias /test <Directory Options Indexes MultiViews FollowSymLinks AllowOverride None AuthName authtype basic authuserfile /etc/httpd/user </Directory>