http {upstream php_processes { server 127.0.0.1:9001 weight=1; server 127.0.0.1:9002 weight=1;}server { ## Regular PHP processing. location ~ \.php$ { try_files $uri =404; fastcgi_pass php_processes; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}}
當然省略了好多 ... 好像是為了 php 多進程
回複內容:
http {upstream php_processes { server 127.0.0.1:9001 weight=1; server 127.0.0.1:9002 weight=1;}server { ## Regular PHP processing. location ~ \.php$ { try_files $uri =404; fastcgi_pass php_processes; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }}}
當然省略了好多 ... 好像是為了 php 多進程
目測是nginx的設定啊,你確定這個是PHP的設定檔?
首先,這是nginx設定檔,意思是把.php
結尾的請求交給fastcgi解譯器;
其次,php-fpm本身就是一個fastcgi的進程管理器,支援多進程,支援動態增減進程數;
再次,如果在網路上有多個不同的php-fpm,可以你給你nginx配置實現多機負載平衡;
最後,這樣配的好處是,如果一個節點掛掉了,nginx可以把請求轉到另一個上,實現高可用。
大哥這是nginx的反向 Proxy的配置呀
這個是nginx的設定檔,不是PHP的配置,php的設定檔是php.ini
這不是nginx的配置嗎?怎麼變成php的啦
樓上都給贊 !!! 哈哈哈 嗯 確實是 nginx 反向 Proxy配置 .
這是負載平衡的配置吧,方向代理在location裡面
上面一堆答案都沒說到重點。
upstream php_processes { server 127.0.0.1:9001 weight=1; server 127.0.0.1:9002 weight=1;}
為什麼要開兩個連接埠,9001和9002,也就是兩個可執行檔線程?
舉例:
如果線程數只有一個,那麼這個代碼就會等待test.php的執行,然後test.php會等待這個php檔案的執行結束……
於是,就"死結"了……無限等待,然後30秒逾時就跪掉了。
所以WNMP必須這麼配置。
這個配置也只是用來本地測試下代碼用而已。
要更專業的話,也不建議用Windows,也不會只給2個處理線程。
(下面那部分就是很常規的預設的Nginx的配置了,不解釋)
樓上回答是正解,upstream
是Nginx的負載平衡配置,意思是按照相同的權重把請求分布到兩個連接埠上,其用意自然也就是多個進程來處理任務,一是提高並發數量,第二就是防止檔案鎖等各種鎖的發生