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