放假以來,伺服器apache二次崩掉了,不能再拖了,找bug解決;
崩掉的具體狀況是,伺服器出現彈框顯示:apache停止工作;
順手關掉這個可惡的小彈框,世界就清靜了,伺服器正常執行;
檢視錯誤日誌\apache\logs
,找到關鍵報錯:
[mon aug 14 10:47:19.644531 2017] [mpm_winnt:error] [pid 5776:tid 4144] ah00326: server ran out of threads to serve requests. consider raising the threadsperchild setting
報錯表示程序的執行緒數不夠用,可以修改threadsperchild
,即每個子程序開啟的併發執行緒數。
apache針對不同的作業系統提供了多個不同的mpm模組,例如:mpm_beos
、mpm_event
、mpm_netware
、mpmt_os2
、mpm_prefork
、mpm_winnt
、mpm_worker
。
windows作業系統上預設的mpm模組是mpm_winnt
,mpm_winnt
模組是專門針對windows作業系統而優化設計的mpm模組。它只建立乙個單獨的子程序,並在這個子程序中輪流產生多個執行緒來處理請求。
在對apache的mpm模組具備一定了解後,我們就可以針對不同的mpm模組來修改apache的最大併發連線數配置了。
修改mpm模組配置
1 啟用mpm模組配置檔案
在apace安裝目錄/conf/extra
目錄中有乙個名為httpd-mpm.conf
的配置檔案。該檔案主要用於進行mpm模組的相關配置。不過,在預設情況下,apache的mpm模組配置檔案並沒有啟用。因此,我們需要在httpd.conf
檔案中啟用該配置檔案,如下所示:
# server-pool management (mpm specific)
include conf/extra/httpd-mpm.conf (去掉該行前面的注釋符號"#")
2 修改mpm模組配置檔案中的相關配置
修改http-mpm.conf
檔案
#由於mpm_winnt模組只會建立1個子程序,因此這裡對單個子程序的引數設定就相當於對整個apache的引數設定。
threadsperchild 521 #預設值是150,推薦設定:小型**=1000 中型**=1000~2000 大型**=2000~3500
3 重啟phpstudy,啟動成功了,接下來幾天是觀察時間了;有錯的話再更新文章! Apache配置為Tomcat集群的負載均衡器
1 開啟 usr local apache2 conf 目錄下的 httpd.conf 檔案,在檔案最後新增如下配置專案,如圖 4 2 1 所示。proxyrequests off proxypass balancer mycluster balancermember ajp localhost 1...
為Apache配置虛擬機器Virtual Host
配置虛擬機器最少需要修改兩個檔案,即httpd vhosts.conf 和 hosts 記住修改任何配置前先備份哦,這才是個好習慣 第一步,修改httpd vhosts.conf檔案,檔案路徑 apache conf extra 在檔案底部加入下面這段 複製下面的例子 namevirtualhost...
配置apache以支援cgi程序的執行
配置apache執行cgi程式可分為兩種情況,一是scriptalias目錄的cgi,二是scriptalias以外目錄的cgi。scriptalias指令使apache允許執行乙個特定目錄中的cgi程式。當客戶端請求此特定目錄中的資源時,apache假定其中檔案都是cgi程式並試圖執行。scrip...