頻道欄目
首頁 > 資訊 > php > 正文

web服務nginx和php的相互關系介紹

17-11-23        來源:[db:作者]  
收藏   我要投稿

nginx和php有什么關系?很多新手可能有這個疑問,我之前學php也沒注意這些問題,只管著按文檔配置操作,完成php項目就不管了,最近特意總結了一下。

php是一門編程語言,講究說學逗唱...呃,不對,是可以編寫很多程序,但是只有php的話,你的php只能在你的服務器里孤立的運行,比如你用php寫了一個可以通過身高計算人的標準體重的程序,雖然這個程序可以在服務器運行,但是他還不能和客戶交互,因為客戶現在還不能訪問你的php程序,他也不會去下載你的php程序到自己電腦里運行,他只想默默的通過瀏覽器告訴你他的身高,然后得到這個程序返回的體重,那么誰來得到這個用戶發送過來的請求呢,又怎么把請求數據轉發給對應的php程序呢 ?

nginx就是為了解決上述問題而出現的,nginx是一個已經寫好的程序,需要安裝配置,作用是專門接收處理客戶通過瀏覽器等發送來的請求,并和你寫的php程序交互,就這么簡單,但是nginx不僅可以和你寫的php程序交互,也可以和你寫的其他程序交互,比如C,python,因為不是所有人都用php來寫web程序,簡單點說nginx是一個可以監聽處理http請求(瀏覽器請求)的程序,會裝會配置,知道流程就可以用了,當然深入了解下就更好了。

這樣的話,nginx就可以比喻處理成處理http請求業務的部門,是服務器和外部千千萬萬瀏覽器等客戶端進行溝通的關口。php是服務器內部一個數據加工部門,可以加工生成各種頁面?蛻舳税l送的http請求歷經層層路由到達你的服務器,然后被nginx逮個正著,統一聽候nginx大人的調度,如果客戶請求的是其他靜態資源,比如txt文本,圖片等,nginx直接找到該資源,并返回給客戶端,如果客戶請求的是php程序,就找到對應的php程序,然后把客戶數據給這個程序,讓這個php程序運行一遍,再把這個程序運行的結果返回給客戶端。

當然nginx和php具體交互并沒有那么簡單,還需要保證規范和高效,在數據交換上,需遵守統一的規范,這個好理解,大家統一數據格式才不會亂套,效率才會更高。

為了更深入的理解nginx,你也可以自己寫一個web服務,比如用c或python寫一個程序監聽你服務器的80端口,80端口就是http請求的入口,然后還要考慮多線程等處理,因為客戶的請求有時候會一起過來,也就是并發,不能寫個服務只能處理一個請求,得到客戶的請求后還要得到需要的參數進行分析,如果對方請求的是php程序,要考慮在系統里實時啟動對應的php程序,把數據交給那個程序,然后老老實實的等這個程序運行結束,得到該程序產生的結果,然后把這個結果送還給客戶端,這樣就完成任務了。自己去想辦法實現還能補充不少知識,比如socket編程,c,進程之間是怎么進行交互的等等,寫完后還會去關注處理請求能力,內存使用情況,這樣下來就會有一個比較完整的認識,最后反過來就會去想nginx是怎樣處理高并發的呢?為什么我寫的遇到并發經常掛掉?我寫的和php交互時為什么這么慢?nginx里配置的php-fpm又是什么?有了這些疑問后,再進行下一步深入探索,效率就會高很多了。

相關TAG標簽
上一篇:JavaScript開發之js數據類型分析
下一篇:注冊表單驗證遇到的問題及解決辦法
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片