1、Apache Web服務器簡介html
1.Apache Web是目前世界使用排名第一的Web服務器軟件。Apache服務器的特色是使用簡單、速度快、性能穩定、能夠做爲負載均衡及代理服務器來使用。web
2.在企業中Apache最經常使用的處理模塊爲Prefork MPM和Worker MPM,Event MPM不多用,默認Apache處理模塊爲Prefork MPM方式。apache
3.Prefork MPM工做原理:控制進程Master在最初創建"StartServers"個進程後,爲了知足MinSpareServers設置的最小空閒進程,因此需建立第一個空閒進程,等待一秒鐘,繼續建立兩個,依次按照遞增指數級建立進程數,最多每秒同時建立32個空閒進程,直到知足至少有兩MinSpareServers設置的值爲止。Apache的預派生模式沒必要請求到來時再產生新的進程,從而減小了系統開銷以增長性能,該引擎是基於多進程方式提供對外服務,每一個進程只有一個線程,每一個進程在某個肯定的時間只能維持一個鏈接,優勢是穩定,但每一個進程佔內存也相對較高。vim
4.Worker MPM工做原理:控制進程Master在最初創建"StartServers"個進程,每一個進程會建立ThreadsPerChild設置的線程數,多個線程共享該進程內存空間,同時每一個線程獨立處理用戶的Http請求。該模式使用多個進程,每一個進程包括多個線程,每一個線程在某個肯定的時間只能維持一個鏈接,內存佔用量比較小,適合大開發、高流量的Web服務器。Worker MPM缺點是一個線程崩潰,整個進程就會連同其任何線程一塊兒掛掉。瀏覽器
2、Apache Web服務器安裝服務器
[root@localhost tools]# wget http://archive.apache.org/dist/httpd/httpd-2.4.29.tar.gz 負載均衡
[root@localhost tools]# tar -xzvf httpd-2.4.29.tar.gz socket
[root@localhost tools]# cd httpd-2.4.29ide
[root@localhost httpd-2.4.29]# yum install apr apr-devel apr-util apr-util-devel -y性能
[root@localhost httpd-2.4.29]# ./configure --prefix=/usr/local/apache2/ --enable-rewrite --enable-so
[root@localhost httpd-2.4.29]# make # 編譯
[root@localhost httpd-2.4.29]# make install #安裝
[root@localhost local]# /usr/local/apache2/bin/apachectl start
測試:
3、Apache虛擬主機企業應用
Web虛擬主機配置方法有如下三種:
1.基於單IP多個socket端口
2.基於多IP地址一個端口
3.基於單IP一個端口不一樣域名。
實戰步驟以下:
[root@localhost conf]# pwd
/usr/local/apache2/conf
[root@localhost conf]# vim httpd.conf
......
# Virtual hosts
Include conf/extra/httpd-vhosts.conf #去掉前面的#號便可
......
[root@localhost extra]# pwd
/usr/local/apache2/conf/extra
[root@localhost extra]# vim httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2//docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/local/apache2//docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
建立www.sky9890.com及www.sky9899.com發佈目錄,重啓Apache服務,並分別建立index.html頁面,命令如下:
[root@localhost extra]# mkdir -p /usr/local/apache2/htdocs/{sky9890,sky9899}/
[root@localhost extra]# echo "<h1>www.sky9890.com Pages</h1>">/usr/local/apache2/htdocs/sky9890/index.html
[root@localhost extra]# echo "<h1>www.sky9899.com Pages</h1>">/usr/local/apache2/htdocs/sky9899/index.html
修改配置文件:[root@localhost extra]# vim httpd-vhosts.conf
<VirtualHost *:80> #虛擬機80端口
ServerAdmin 553752017@qq.com #管理員郵箱
DocumentRoot "/usr/local/apache2/htdocs/sky9890" #虛擬主機發布目錄。
ServerName www.sky9890.com #虛擬主機完整域名
# ServerAlias www.dummy-host.example.com #別名
RewriteCond %{HTTP_HOST} www.sky9890.com [NC,OR] #NC表示不區分大小寫,OR表式或。
RewriteCond %{HTTP_HOST} www.sky9899.com [NC,OR]
RewriteCond %{HTTP_HOST} ^sky9899.com [NC,OR]
RewriteCond %{HTTP_HOST} ^sky9890.com [NC,OR]
RewriteRule ^/(.*)$ http://www.51cto.com [L] #L表示最後一條匹配規則,中止匹配後續規則。將www.sky9890.com、www.sky9899.com、sky9899.com、sky9890.com跳轉至www.51cto.com
ErrorLog "logs/www.sky9890.com_error_log"
CustomLog "logs/www.sky9890.com_access_logg" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin 553752017@qq.com
DocumentRoot "/usr/local/apache2/htdocs/sky9899"
ServerName www.sky9899.com
RewriteCond %{HTTP_HOST} www.sky9890.com [NC,OR]
RewriteCond %{HTTP_HOST} www.sky9899.com [NC,OR]
RewriteCond %{HTTP_HOST} ^sky9890.com [NC]
RewriteRule ^/(.*)$ http://www.51cto.com [L]
ErrorLog "logs/www.sky9899.com_error_log"
CustomLog "logs/www.sky9899.com_access_log" common
</VirtualHost>
4、Apache rewrite規則實戰
1.rewrite規則也稱爲規則重寫,主要功能實現瀏覽器訪問HTTP URL的跳轉。
2.rewrite規則重寫的用途以下:
1)對搜索引擎優化友好,利於搜索引擎頁面。
2)隱藏網站URL真實地址,瀏覽器顯示更加美觀。
3)網站變動升級,能夠基於rewrite臨時重定向到其餘頁面。
5、其餘配置技能
1)LoadModule rewrite_module modules/mod_rewrite.so #http.conf配置文件中找到該條並把前面的#號去掉。
2)虛擬主機配置段設置如該指令來開啓rewrite功能:RewriteEngine on
3)AllowOverride None,改爲AllowOverride All
4)將rewrite規則要寫入到httpd-vhosts.conf文件中,要寫在<VirtualHost *:80>......</VirtualHost>
5)%{ 兩符號之間是不能有空格的,不然執行無效果。
6)Windows客戶端設置hosts映射,將www.sky9890.com、www.sky9899.com與192.168.153.142進行映射綁定,映射的目的將域名跟IP進行綁定,配置以下:
C:\Windows\System32\drivers\etc\hosts #用記事本打開hosts文件,並添加下列行
192.168.153.142 www.sky9890.com
192.168.153.142 www.sk9899.com
192.168.153.142 sky9890.com
192.168.153.142 sky9899.com
6、測試結果以下:
在瀏覽器中分別輸入上述四個地址,都會自動跳轉到以下界面: