nginx代理的php文件(nginx代理php多站點)

本文目錄一覽:

nginx PHP文件不能正常訪問.

       一般nginx默認配置中會是這個樣子的。這裡有一個SCRIPT_FILENAME變量,但是fastcgi_params這個文件中是不包含該變量的,改變量的定義實際上是在fastcgi.conf文件中。

      實際上可以把配置修改成如下的配置。

location ~ \.php$ {

    root /usr/share/nginx/html;

    fastcgi_pass   127.0.0.1:9000;

    fastcgi_index  index.php;

    fastcgi_intercept_errors on;

    include fast_cgi.conf;

    

    #可以增加rewrite,也可以不增加。

}

      按如上的配置,如果訪問127.0.0.1:9000/a.php,則實際上根據root指令和fast_cgi.conf配置,nginx會通過fast_pass指令訪問/usr/share/nginx/html/a.php這個文件。

      記得用root指令,指定站點的文檔根路徑。

php和nginx之間是如何工作的

Nginx+php-fpm實現原理 Nginx本身不會對PHP進行解析,終端對PHP頁面的請求將會被Nginx交給FastCGI進程監聽的IP地址及端口,由php-fpm作為動態解析服務器處理,最後將處理結果再返回給nginx。其實,Nginx就是一個反向代理服務器。Nginx通過反向代理功能將動態請求轉向後端php-fpm,從而實現對PHP的解析支持,這就是Nginx實現PHP動態解析的原理。 Nginx不支持對外部程序的直接調用或者解析,所有的外部程序(包括PHP)必須通過FastCGI接口來調用。FastCGI接口在Linux下是socket(這個socket可以是文件socket,也可以是ip socket)。為了調用CGI程序,還需要一個FastCGI的wrapper(wrapper可以理解為用於啟動另一個程序的程序),這個wrapper綁定在某個固定socket上,如端口或者文件socket。當Nginx將CGI請求發送給這個socket的時候,通過FastCGI接口,wrapper接收到請求,然後派生出一個新的線程,這個線程調用解釋器或者外部程序處理腳本並讀取返回數據;接着,wrapper再將返回的數據通過FastCGI接口,沿着固定的socket傳遞給Nginx;最後,Nginx將返回的數據發送給客戶端。

當nginx接收到一個http請求時,通過配置文件找到對應的server。然後匹配server中的所有location,找到最匹配的。而在location中的命令會啟動不同的模塊去完成工作,比如rewrite模塊、index模塊。因此在nginx中模塊可以看作真正的勞動工作者。nginx的模塊是被編譯到nginx中的,屬於靜態方式。啟動nginx時,模塊被自動加載。

nginx 反向代理後為什麼訪問php文件 會提示404

404是沒有找到文件,你反向代理指向的服務器是不是正確的,路徑是否正確,文件是否存在,都檢查一下

原創文章,作者:RZQO,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/146046.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RZQO的頭像RZQO
上一篇 2024-10-29 18:59
下一篇 2024-10-29 18:59

相關推薦

發表回復

登錄後才能評論