摘要:本文介紹三者之間的關系,以及反向代理和負載均衡的配置。先使用負載均衡模塊找到一臺主機,再使用模塊實現與這臺主機的交互。負載均衡配置該例定義了一個的負載均衡配置,通過反向代理指令應用這個配置。
本文介紹 PHP-FPM,Nginx,FastCGI 三者之間的關系,以及 Nginx 反向代理和負載均衡的配置。
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.
Nginx 反向代理Nginx 反向代理最重要的指令是 proxy_pass,如:
location ^~ /seckill_query/ { proxy_pass http://ris.xxmail.gdrive:8090/; proxy_set_header Host ris.xxmail.gdrive; } location ^~ /push_message/ { proxy_pass http://channel.xxmail.gdrive:8090/; proxy_set_header Host channel.xxmail.gdrive; } location ^~ /data/ { proxy_pass http://ds.xxmail.gdrive:8087/; proxy_set_header Host ds.xxmail.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
如果使用負載均衡,可能存在一個 session 失效的問題,你的每次請求可能分配到不同的服務器,一個解決方法是把 Memcached 或 Redis 作為 session 存儲的方式,而且還可以提高性能。
一些問題 反向代理和負載均衡是什么關系反向代理和負載均衡這兩個詞經常出現在一起,但他們實際上是不同的概念,負載均衡它更多的是強調的是一種算法或策略,將請求分布到不同的機器上,因此實際上也起到了反向代理的作用。
proxy_pass 和 fastcgi_pass 的區別一個是反向代理模塊,一個是轉發給 factcgi 后端處理。
(原文地址:https://blog.tanteng.me/2017/...)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39699.html
摘要:接下來解析器會解析文件,初始化執行環境,然后處理請求,再以規定規定的格式返回處理后的結果,退出進程。好了,是個協議,跟進程什么的沒關系。的管理對象是。 原文分享自segmentfault @尹川的回答,搞不清FastCgi與PHP-fpm之間是個什么樣的關系 若涉及侵權,請聯系我刪除 我在網上查fastcgi與php-fpm的關系,查了快一周了,基本看了個遍,真是眾說紛紜,沒一個權...
摘要:通過或在服務器上運行時可以使用的可執行文件,可以理解為解釋器也有說是官方的進程管理器,至于是什么文章后面再分析,這里就當作解釋器。就是為了解決的問題,制定的協議。 一個模糊的概念 無論是php,python編程語言,還是apache,nginx服務器對于cgi協議是個繞不開的話題。安裝,部署都會經常的看到,那么它們到底是干什么的,網上的答案非常的多!今天通過它們進行一波匯總,徹底告別這...
摘要:通過或在服務器上運行時可以使用的可執行文件,可以理解為解釋器也有說是官方的進程管理器,至于是什么文章后面再分析,這里就當作解釋器。就是為了解決的問題,制定的協議。 一個模糊的概念 無論是php,python編程語言,還是apache,nginx服務器對于cgi協議是個繞不開的話題。安裝,部署都會經常的看到,那么它們到底是干什么的,網上的答案非常的多!今天通過它們進行一波匯總,徹底告別這...
摘要:通過或在服務器上運行時可以使用的可執行文件,可以理解為解釋器也有說是官方的進程管理器,至于是什么文章后面再分析,這里就當作解釋器。就是為了解決的問題,制定的協議。 一個模糊的概念 無論是php,python編程語言,還是apache,nginx服務器對于cgi協議是個繞不開的話題。安裝,部署都會經常的看到,那么它們到底是干什么的,網上的答案非常的多!今天通過它們進行一波匯總,徹底告別這...
摘要:如何實現持久化持久化,將在內存中的的狀態保存到硬盤中,相當于備份數據庫狀態持久化,持久化是通過保存服務器鎖執行的寫狀態來記錄數據庫的。 showImg(https://segmentfault.com/img/bVbejmD?w=643&h=404); 這是我整理的一套面試題,老鐵們看看就當復習了哦 概述 感覺現在發面試題有些冷門,就跟昨天德國那場似的,不過看看當提前復習了。提前備戰。...
閱讀 2121·2023-04-26 02:19
閱讀 1914·2021-11-19 09:40
閱讀 1704·2021-09-29 09:35
閱讀 3575·2021-09-29 09:34
閱讀 4297·2021-09-07 10:16
閱讀 5530·2021-08-11 11:14
閱讀 3578·2019-08-30 15:54
閱讀 1629·2019-08-30 15:53