apache伺服器本質上說是乙個tcp socket服務,socket模型如下:
下面以worker mpm來說明apache**中相應處理的位置在**:
(以apache httpd 2.2.23版本的**為基礎)
1) 在第一次啟動時驗證配置沒有異常時,建立了socket。
2) open_logs 掛鉤呼叫了 ap_setup_listeners() ,最終在listen.c的make_socket方法執行了apr_socket_bind/apr_socket_listen,進入通訊的環節。
3) worker.c的監聽執行緒中負責接受請求,然後利用ap_queue_push把相應的請求放入佇列中。下面是接受請求accept_func的呼叫棧。
4)請求/響應的處理。
請求的處理是通過handler來實現,如果是讀取伺服器上的靜態頁面,則由default_handler來處理。同時響應的內容需要通過filter修改之後,最終傳送header和body。下面是傳送header的呼叫棧。
暫時寫到這裡,以後再繼續分析。
apache伺服器本質
apache伺服器本質上說是乙個tcp socket服務,socket模型如下 下面以worker mpm來說明apache 中相應處理的位置在 以apache httpd 2.2.23版本的 為基礎 1 在第一次啟動時驗證配置沒有異常時,建立了socket。2 open logs 掛鉤呼叫了 ap...
apache伺服器本質
apache伺服器本質上說是乙個tcp socket服務,socket模型如下 下面以worker mpm來說明apache 中相應處理的位置在 以apache httpd 2.2.23版本的 為基礎 1 在第一次啟動時驗證配置沒有異常時,建立了socket。2 open logs 掛鉤呼叫了 ap...
伺服器安裝apache伺服器
1.環境 centos7 2.鏈結伺服器 ssh username ip 3.安裝apache 4.設定apache在伺服器啟動時執行 5.在apache配置檔案中設定網域名稱 vi etc httpd conf httpd.conf,找到 servername 新增 網域名稱 80 儲存並退出。6...