Apache Web服務器實戰

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

image.png

[root@localhost httpd-2.4.29]# make     # 編譯

[root@localhost httpd-2.4.29]# make install   #安裝

[root@localhost local]# /usr/local/apache2/bin/apachectl  start    

測試:

image.png

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、測試結果以下:

在瀏覽器中分別輸入上述四個地址,都會自動跳轉到以下界面:

圖片.png

相關文章
相關標籤/搜索