目錄
PHP-FPM,Nginx,FastCGI 之間的關係" >PHP-FPM,Nginx,FastCGI 之間的關係
Nginx 反向代理" >Nginx 反向代理
Nginx 負載平衡" >Nginx 負載平衡
問題" >問題
#反向代理程式與負載平衡是什麼關係
proxy_pass 和 fastcgi_pass 的區別
首頁 後端開發 php教程 淺談PHP-FPM、Nginx和FastCGI間的關係

淺談PHP-FPM、Nginx和FastCGI間的關係

Jun 09, 2021 pm 06:35 PM
fastcgi nginx php php-fpm

這篇文章為大家聊聊PHP-FPM、Nginx、FastCGI三者之間的關係,以及 Nginx 反向代理和負載平衡的配置。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

淺談PHP-FPM、Nginx和FastCGI間的關係

PHP-FPM,Nginx,FastCGI 之間的關係

FastCGI 是一個協議,它是應用程式和WEB 伺服器連接的橋樑。 Nginx 並非直接與 PHP-FPM 通信,而是將請求透過 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 請求轉寄給 php-fpm 來處理。透過netstat 指令可以看到,127.0.0.1:9000 這個連接埠上執行的程序就是php-fpm.

淺談PHP-FPM、Nginx和FastCGI間的關係

Nginx 反向代理

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 路徑,將其轉送到另一個伺服器處理。

透過負載平衡 upstream 也可以實現反向代理。

Nginx 負載平衡

介紹upstream 模組:

負載平衡模組用於從”upstream”指令定義的後端主機清單中選取一台主機。 nginx先使用負載平衡模組找到一台主機,再使用upstream模組實現與這台主機的互動。

負載平衡配置:

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;
}
登入後複製

此範例定義了一個 php-upstream 的負載平衡配置,透過 proxy_pass 反向代理指令套用這個配置。這裡用的 ip_hash 演算法,負載平衡的演算法有多種,就不一一列舉了。

負載平衡也可以用在 fastcgi_pass 上。

如:

fastcgi_pass http://php-upstream
登入後複製

問題

#反向代理程式與負載平衡是什麼關係

反向代理和負載平衡這兩個詞經常出現在一起,但他們實際上是不同的概念,負載平衡它更多的是強調的是一種演算法或策略,將請求分佈到不同的機器上,因此實際上也起到了反向代理的作用。

proxy_pass 和 fastcgi_pass 的區別

一個是反向代理模組,一個是轉送給 factcgi 後端處理。

淺談PHP-FPM、Nginx和FastCGI間的關係

推薦學習:《PHP影片教學

以上是淺談PHP-FPM、Nginx和FastCGI間的關係的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP:處理數據庫和服務器端邏輯 PHP:處理數據庫和服務器端邏輯 Apr 15, 2025 am 12:15 AM

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

怎麼查看nginx是否啟動 怎麼查看nginx是否啟動 Apr 14, 2025 pm 01:03 PM

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

linux怎麼查看nginx是否啟動 linux怎麼查看nginx是否啟動 Apr 14, 2025 pm 12:48 PM

在 Linux 中,使用以下命令檢查 Nginx 是否已啟動:systemctl status nginx根據命令輸出進行判斷:如果顯示 "Active: active (running)",則 Nginx 已啟動。如果顯示 "Active: inactive (dead)",則 Nginx 已停止。

linux怎麼啟動nginx linux怎麼啟動nginx Apr 14, 2025 pm 12:51 PM

在 Linux 中啟動 Nginx 的步驟:檢查 Nginx 是否已安裝。使用 systemctl start nginx 啟動 Nginx 服務。使用 systemctl enable nginx 啟用在系統啟動時自動啟動 Nginx。使用 systemctl status nginx 驗證啟動是否成功。在 Web 瀏覽器中訪問 http://localhost 查看默認歡迎頁面。

PHP的目的:構建動態網站 PHP的目的:構建動態網站 Apr 15, 2025 am 12:18 AM

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

nginx在windows中怎麼配置 nginx在windows中怎麼配置 Apr 14, 2025 pm 12:57 PM

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

nginx怎麼查看運行狀態 nginx怎麼查看運行狀態 Apr 14, 2025 am 11:48 AM

查看 Nginx 運行狀態的方法有:使用 ps 命令查看進程狀態;查看 Nginx 配置文件 /etc/nginx/nginx.conf;使用 Nginx 狀態模塊啟用狀態端點;使用 Prometheus、Zabbix 或 Nagios 等監控工具。

PHP和Python:代碼示例和比較 PHP和Python:代碼示例和比較 Apr 15, 2025 am 12:07 AM

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

See all articles