這篇文章主要介紹了PHP-FPM、Nginx和FastCGI間的關(guān)系是什么,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。10余年品質(zhì),值得信賴!
FastCGI 是一個(gè)協(xié)議,它是應(yīng)用程序和 WEB 服務(wù)器連接的橋梁。Nginx 并不能直接與 PHP-FPM 通信,而是將請(qǐng)求通過 FastCGI 交給 PHP-FPM 處理。
location ~ \.php$ { try_files $uri /index.php =404; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
這里 fastcgi_pass 就是把所有 php 請(qǐng)求轉(zhuǎn)發(fā)給 php-fpm 進(jìn)行處理。通過 netstat 命令可以看到,127.0.0.1:9000 這個(gè)端口上運(yùn)行的進(jìn)程就是 php-fpm.
Nginx 反向代理最重要的指令是 proxy_pass,如:
location ^~ /seckill_query/ { proxy_pass http://ris.filemail.gdrive:8090/; proxy_set_header Host ris.filemail.gdrive; } location ^~ /push_message/ { proxy_pass http://channel.filemail.gdrive:8090/; proxy_set_header Host channel.filemail.gdrive; } location ^~ /data/ { proxy_pass http://ds.filemail.gdrive:8087/; proxy_set_header Host ds.filemail.gdrive; }
通過 location 匹配 url 路徑,將其轉(zhuǎn)發(fā)到另外一個(gè)服務(wù)器處理。
通過負(fù)載均衡 upstream 也可以實(shí)現(xiàn)反向代理。
介紹一下 upstream 模塊:
負(fù)載均衡模塊用于從”upstream”指令定義的后端主機(jī)列表中選取一臺(tái)主機(jī)。nginx先使用負(fù)載均衡模塊找到一臺(tái)主機(jī),再使用upstream模塊實(shí)現(xiàn)與這臺(tái)主機(jī)的交互。
負(fù)載均衡配置:
upstream php-upstream { ip_hash; server 192.168.0.1; server 192.168.0.2; } location / { root html; index index.html index.htm; proxy_pass http://php-upstream; }
該例定義了一個(gè) php-upstream 的負(fù)載均衡配置,通過 proxy_pass 反向代理指令應(yīng)用這個(gè)配置。這里用的 ip_hash 算法,負(fù)載均衡的算法有多種,就不一一列舉了。
負(fù)載均衡也可以用在 fastcgi_pass 上。
如:
fastcgi_pass http://php-upstream
反向代理和負(fù)載均衡這兩個(gè)詞經(jīng)常出現(xiàn)在一起,但他們實(shí)際上是不同的概念,負(fù)載均衡它更多的是強(qiáng)調(diào)的是一種算法或策略,將請(qǐng)求分布到不同的機(jī)器上,因此實(shí)際上也起到了反向代理的作用。
一個(gè)是反向代理模塊,一個(gè)是轉(zhuǎn)發(fā)給 factcgi 后端處理。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“PHP-FPM、Nginx和FastCGI間的關(guān)系是什么”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!