一.基本概念: 1. Web服務的定義 Web服務是基於B/S模型,服務器端可以爲客戶端提供動態的,交互的超文本服務; 2.Web服務器的含義 運行http協議和Web服務器軟件且能夠爲客戶端提供Web服務的主機稱爲Web服務器 3. Web服務的工作流程 ⑴ 客戶端通過客戶程序建立與服務器的連接; ⑵ 訪問中服務器的相應資源 ⑶ 斷開連接 4. 常見的服務器軟件: httpd lighttpd thttpd nginx IIS Webspere Weblogic tomcat 5. APACHE特點: 可移植性強 支持DSO功能 支持JSP、PHP、CGI 支持MYSQL、POSTGRESQL 支持基於IP地址/域名的虛擬主機 支持OPENSSL 二.基本配置與使用 1.所需要的軟件包: httpd-2.2.3-31.e15.i386.rpm 2.配置文件的目錄: /etc/httpd/conf/httpd.conf (Apache 的核心配置文件) /etc/rc.d/init.d/httpd (Apache 的啓動腳本) /usr/sbin/apachectl (Apache 的管理工具) /etc/httpd/modules (Apache模塊存放目錄) /etc/httpd/conf (存放httpd的配置子文件) /usr/bin/htpasswd (建立http用戶和設置用戶口令) .htaccess (存放目錄的訪問控制選項) /var/www/html (存放網頁的配置目錄) 3.主配置文件(/etc/httpd/conf/httpd.conf)中的一些常用配置: ❶Timeout 300 定義服務器與客戶端的連接超時時間 ❹KeepAliveTimeout 15 定義一次連接中的兩次請求之間的間隔時間 ❺MinSpareServers 5 設置httpd產生的最少空閒子進程數 ❻MaxSpareServers 20 設置httpd產生的最大空閒子進程數 ❼StartServers 8 設置httpd啓動時產生的子進程個數 ❿Listen 端口號/IP 地址:端口號 設置服務器httpd守護進程的監聽端口 yum install httpd -y (如沒有安裝yum源,可以使用rpm進行安裝) service httpd start 三:配置功能實現,以案例爲主: 以下實驗過程如果無法訪問,一定通過getenforce命令查看狀態,必須爲Permissive,否則通過setenforce 0進行修改。
httpd-devel-2.2.3-31.el5.i386.rpm
httpd-manual-2.2.3-31.el5.i386.rpm
system-config-httpd-1.3.3.1-1.el5.noarch.rpm
❷KeepAlive On/Off 設置Apache是否保持連接
❸http1.1MaxKeepAliveRequests 100 定義http1.1的一次連接中允許的最大請求數
❽MaxClients 150 定義服務器的最大併發連接數❾MaxRequestsPerChild 1000 設置每一個子進程接受的最大請求數
4.安裝web服務
案例一:實現用戶家目錄的訪問:
編輯主配置文件:vim /etc/httpd/conf/httpd.conf
1.在配置文件中進行修改:註銷 355行 # UserDir disable
開啓362行: UserDir public_html 保存退出
(由於appache主配置文件內容比較多,我在這裏添上行號,方便修改,行號可能有出入,不過基本都在這一片,好好查找,以防出錯)
2.su - student
mkdir public_html
cd /public_html
vim index.html (任意編輯一句話,進行實驗效果的驗證)
This is a home dir!保存退出
exit 退出student用戶登錄,切換root用戶登錄
chmod o+x /home/student 修改權限
3.service httpd restart
4.效果驗證:在瀏覽器中輸入http://192.168.0.8/~student
案例二:修改默認目錄(/var/www/html),實現其他目錄訪問:
1.mkdir /www 創建目錄
2.修改主配置文件:
281行:DocumentRoot "/var/www/html" 修改爲DocumentRoot "/www"
306行: <Directory "/var/www/html"> 修改爲<Directory "/www">
保存退出
3.vim /www/index.html
This is a www dir test.
4.service httpd restart 重啓服務
5.實驗效果驗證:在瀏覽器中輸入http://192.168.0.8
案例三:實現www下子目錄的訪問:
①cd /www
mkdir bbs
vim /bbs/index.html
This is bbs dir.
進行訪問:http://192.168.0.8/bbs
②如果bbs不在www目錄下
mv bbs /tmp
需要修改配置文件:Alias /icons/ "/var/www/icons/"
Alias /bbs "/tmp/bbs"
重啓服務,訪問即可
案例四:瀏覽時需要提供密碼才能訪問:
1.修改配置文件:AllowOverride None(是否允許覆蓋) 修改爲 AllowOverride AuthConfig
AuthName "Welcome"
AuthType basic (認證類型,basic基於本地文件認證)
AuthUserFile /etc/httpd/.htpasswd
require(valid-user) user user1 user2 (允許用戶登錄)
修改完成保存退出,重啓服務
2.添加訪問用戶 htpasswd -cm /etc/httpd/.htpasswd user1
htpasswd -m /etc/httpd/.htpasswd user2
3.實驗效果驗證:在瀏覽器中輸入http://192.168.0.8
案例五:https方式訪問
①安裝mod_ssl模塊:yum install mod_ssl*
cd /etc/httpd/conf.d
ls查看會生成ssl.conf
②製作CA:
cd /etc/pki/tls
vim openssl.cnf
修改:[ CA_default ]
dir = /etc/pki/CA
cd /etc/pki/CA
openssl genrsa 1024 > private/cakey.pem生成密鑰對
openssl req -new -x509 -key pravite/cakey.pem -out cacert.pem -days 365 自籤
mkdir certs newcerts crl
touch index.txt serial
echo 01 > serial
③爲web服務簽證:
cd /etc/httpd
mkdir ssl
cd ssl/
openssl genrsa 1024 > httpd.key 生成密鑰
openssl req -new -key httpd.key -out httpd.csr 證書籤署請求
openssl ca -in httpd.csr -out httpd.crt
④vim /etc/httpd/conf.d/ssl.conf
修改:SSLCertificateFile /etc/httpd/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
DocumentRoot "/www"
ServerName www.aaa.com:443
在Windows下:C:\Windows\System32\drivers\etc 修改hosts文件,將ip地址及www.aaa.com寫入
將linux下的/etc/pki/CA下的cacert.pem放到Windows下,修改爲cacert.crt
修改Ie設置:工具->內容->證書->受信任的證書頒發機構,導入證書即可