WebServer Q&A

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

當前主流的web伺服器有哪些?

Apache
Nginx
iis

Apache的工作模式有哪些?各自的特點和優缺點是什麼?適用場景是什麼?

apache主要工作模式有3種,分別如下:

prefork工作模式

特點

prefork模式是一種非執行緒的多程序模型,web服務(apache)啟動就是啟動master程序,隨之
master程序會啟動若干個worker子程序,一個程序對應一個執行緒。
master程序的工作就是管理worker子程序,而worker子程序的工作就是處理使用者請求。
當使用者發起一個請求,apache就會從空閒的子程序中選擇一個來處理這個使用者請求。
一個程序處理一個請求,處理完才處理下個請求

優點

1、使用者不用等到其他程序處理完畢.因為只要有空閒子程序在就可以處理新的請求
2、每個請求相互獨立,如果一個worker子程序崩潰了,不會影響其他worker程序處理請求。
3、此模式是執行緒安全的,所謂執行緒安全:多個執行緒無法同時操作一個物件
4、響應速度快,穩定

缺點

1、消耗CPU和記憶體資源大
2、併發量不高

worker工作模式

特點

是一種多程序多執行緒模型,仍然是一個master父程序啟動若干個子程序,每個子程序啟動若干個執行緒,每個執行緒處理每個請求

優點

1、worker模型的併發性高於prefork模型,適合高併發場景
2、消耗資源少

缺點

1、非執行緒安全,所以此模式只能使用執行緒安全版本的PHP
2、一旦某執行緒出了問題,可能導致整個程序死掉

event工作模式 (apache2.4新增的)

優點

event模型下,每個程序會有一個單獨的執行緒來管理這些keep-alive型別的執行緒。
當新的請求過來的時候,管理執行緒會把請求交給其他的空閒執行緒處理。
這樣子就避免了每個執行緒都被keep-alive阻塞

缺點

不支援https,在https協議下會退化成worker模型

Apache工作模式在哪裡指定?如何檢視當前apache處於哪種模式

在編譯安裝Apache的時候指定的 –with-mpm=profork
使用命令:./apachectl -l

Apache工作模式的配置檔案在哪?各配置選項是什麼?

配置檔案預設是:httpd-mpm.conf

Apache2.4.X 多站點如何配置?

修改主配置檔案

在httpd.conf中,開啟多站點配置模組
Include conf/extra/httpd-vhosts.conf 把前面#號去掉

開啟extra/httpd-vhost.conf檔案並修改,程式碼如下:

//配置虛擬主機(站點)
<VirtualHost *:80>  
ServerName domain.com
ServerAlias www.domain.com mail.domain.com
DocumentRoot "/home/www"  
#設定資料夾訪問控制,其路徑要和上一行的DocumentRoot一樣,
<Directory "/home/www">  
## 禁止顯示目錄結構
Options FollowSymlinks
## 允許.htaccess生效 
AllowOverride All  
## 請求控制
Require all granted
## 預設開啟的頁面設定
DirectoryIndex index.php index.html  
</Directory>   
</VirtualHost> 

上面配置請求控制到底是什麼?

Require all granted 代表所有人都可以訪問
Require all denied 代表所有人都不可以訪問
Require not ip 192.168.1.24 禁止指定ip訪問
真正要禁止ip,請使用iptables

相關文章

程式語言 最新文章