溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Apache Web服務(wù)器實(shí)戰(zhàn)

發(fā)布時(shí)間:2020-02-14 11:10:07 來源:網(wǎng)絡(luò) 閱讀:1989 作者:sky9890 欄目:建站服務(wù)器

一、Apache Web服務(wù)器簡(jiǎn)介

1.Apache Web是目前世界使用排名第一的Web服務(wù)器軟件。Apache服務(wù)器的特點(diǎn)是使用簡(jiǎn)單、速度快、性能穩(wěn)定、可以作為負(fù)載均衡及代理服務(wù)器來使用。

2.在企業(yè)中Apache最常用的處理模塊為Prefork MPM和Worker MPM,Event MPM很少用,默認(rèn)Apache處理模塊為Prefork MPM方式。

3.Prefork MPM工作原理:控制進(jìn)程Master在最初建立"StartServers"個(gè)進(jìn)程后,為了滿足MinSpareServers設(shè)置的最小空閑進(jìn)程,所以需創(chuàng)建第一個(gè)空閑進(jìn)程,等待一秒鐘,繼續(xù)創(chuàng)建兩個(gè),依次按照遞增指數(shù)級(jí)創(chuàng)建進(jìn)程數(shù),最多每秒同時(shí)創(chuàng)建32個(gè)空閑進(jìn)程,直到滿足至少有兩MinSpareServers設(shè)置的值為止。Apache的預(yù)派生模式不必請(qǐng)求到來時(shí)再產(chǎn)生新的進(jìn)程,從而減少了系統(tǒng)開銷以增加性能,該引擎是基于多進(jìn)程方式提供對(duì)外服務(wù),每個(gè)進(jìn)程只有一個(gè)線程,每個(gè)進(jìn)程在某個(gè)確定的時(shí)間只能維持一個(gè)連接,優(yōu)點(diǎn)是穩(wěn)定,但每個(gè)進(jìn)程占內(nèi)存也相對(duì)較高

4.Worker MPM工作原理:控制進(jìn)程Master在最初建立"StartServers"個(gè)進(jìn)程,每個(gè)進(jìn)程會(huì)創(chuàng)建ThreadsPerChild設(shè)置的線程數(shù),多個(gè)線程共享該進(jìn)程內(nèi)存空間,同時(shí)每個(gè)線程獨(dú)立處理用戶的Http請(qǐng)求。該模式使用多個(gè)進(jìn)程,每個(gè)進(jìn)程包括多個(gè)線程,每個(gè)線程在某個(gè)確定的時(shí)間只能維持一個(gè)連接,內(nèi)存占用量比較小,適合大開發(fā)、高流量的Web服務(wù)器。Worker MPM缺點(diǎn)是一個(gè)線程崩潰,整個(gè)進(jìn)程就會(huì)連同其任何線程一起掛掉。

二、Apache Web服務(wù)器安裝

[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?

[root@localhost tools]# cd httpd-2.4.29

[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

Apache Web服務(wù)器實(shí)戰(zhàn)

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

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

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

測(cè)試:

Apache Web服務(wù)器實(shí)戰(zhàn)

三、Apache虛擬主機(jī)企業(yè)應(yīng)用

Web虛擬主機(jī)配置方法有以下三種:

1.基于單IP多個(gè)socket端口

2.基于多IP地址一個(gè)端口

3.基于單IP一個(gè)端口不同域名。

實(shí)戰(zhàn)步驟如下:

[root@localhost conf]# pwd
/usr/local/apache2/conf
[root@localhost conf]# vim httpd.conf
......
# Virtual hosts
Include conf/extra/httpd-vhosts.conf? #去掉前面的#號(hào)即可
......
[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>

創(chuàng)建www.sky9890.com及www.sky9899.com發(fā)布目錄,重啟Apache服務(wù),并分別創(chuàng)建index.html頁面,命令如下:

[root@localhost extra]# mkdir -p /usr/local/apache2/htdocs/{sky9890,sky9899}/
[root@localhost extra]# echo "<h2>www.sky9890.com Pages</h2>">/usr/local/apache2/htdocs/sky9890/index.html
[root@localhost extra]# echo "<h2>www.sky9899.com Pages</h2>">/usr/local/apache2/htdocs/sky9899/index.html
修改配置文件:[root@localhost extra]# vim httpd-vhosts.conf

<VirtualHost *:80>? #虛擬機(jī)80端口
?ServerAdmin 553752017@qq.com??? #管理員郵箱
?DocumentRoot "/usr/local/apache2/htdocs/sky9890"? #虛擬主機(jī)發(fā)布目錄。
?ServerName www.sky9890.com ? ? ? #虛擬主機(jī)完整域名
?# ServerAlias www.dummy-host.example.com ? #別名
?RewriteCond %{HTTP_HOST} www.sky9890.com? [NC,OR]?? #NC表示不區(qū)分大小寫,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表示最后一條匹配規(guī)則,停止匹配后續(xù)規(guī)則。將www.sky9890.com、www.sky9899.com、sky9899.com、sky9890.com跳轉(zhuǎn)至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>

四、Apache rewrite規(guī)則實(shí)戰(zhàn)

1.rewrite規(guī)則也稱為規(guī)則重寫,主要功能實(shí)現(xiàn)瀏覽器訪問HTTP URL的跳轉(zhuǎn)。

2.rewrite規(guī)則重寫的用途如下:

1)對(duì)搜索引擎優(yōu)化友好,利于搜索引擎頁面。

2)隱藏網(wǎng)站URL真實(shí)地址,瀏覽器顯示更加美觀。

3)網(wǎng)站變更升級(jí),可以基于rewrite臨時(shí)重定向到其他頁面。

五、其他配置技能

1)LoadModule rewrite_module modules/mod_rewrite.so? #http.conf配置文件中找到該條并把前面的#號(hào)去掉。

2)虛擬主機(jī)配置段設(shè)置如該指令來開啟rewrite功能:RewriteEngine on

3)AllowOverride None,改成AllowOverride All

4)將rewrite規(guī)則要寫入到httpd-vhosts.conf文件中,要寫在<VirtualHost *:80>......</VirtualHost>

5)%{ 兩符號(hào)之間是不能有空格的,否則執(zhí)行無效果。

6)Windows客戶端設(shè)置hosts映射,www.sky9890.com、www.sky9899.com與192.168.153.142進(jìn)行映射綁定,映射的目的將域名跟IP進(jìn)行綁定,配置如下:

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

六、測(cè)試結(jié)果如下:

在瀏覽器中分別輸入上述四個(gè)地址,都會(huì)自動(dòng)跳轉(zhuǎn)到如下界面:

Apache Web服務(wù)器實(shí)戰(zhàn)

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI