以下是nginx的預設配置檔案:
server
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#error_page 500 502 503 504 /50x.html;
location = /50x.html
# proxy the php scripts to apache listening on 127.0.0.1:80
##location ~ \.php$
# pass the php scripts to fastcgi server listening on 127.0.0.1:9000
##location ~ \.php$
# deny access to .htaccess files, if apache's document root
# concurs with nginx's one
##location ~ /\.ht
}
乙個location匹配乙個(一種)url。
匹配到對應的url就轉到對應的location中,然後進行處理請求。
預設的root是/usr/share/nginx/html,也就是會轉到對應的目錄下進行處理請求。
但是匹配到有php的檔案就沒有辦法進行解析。
這裡用到了php-fpm 也就是fastcgi在php下的乙個類庫。
當匹配到有.php結尾的請求的時候,就將該請求轉到fastcgi進行處理。 關於
server_name 還糾結了好久,當我在同一作業系統下有兩個使用者a和b,兩者都有各自的root目錄進行訪問,並且同時都配置了各自的server。但是nginx的配置檔案是在全域性其作用的。那麼如果在區域網中c訪問這個伺服器的時候,那麼到底訪問哪個目錄呢?
後來,哥哥告訴我了。
一般在上線的**中配置nginx的時候,server_name是網域名稱,根據不同的網域名稱,nginx自然是知道怎麼去轉的。
如果是在區域網中用ip進行訪問,如果存在著兩個server,那麼就配置乙個當用ip進行訪問的時候,預設跳轉到乙個目錄下就可以了。
預設就會請求這個目錄,並用fastccgi進行**。
在配置nginx的時候發現了乙個問題,訪問的root目錄下,.html結尾的靜態檔案是可以正常被訪問的,.php結尾的就不行。
後來才發現,在進行配置的時候,將root變成了區域性變數,導致匹配php檔案的時候,找不到root。自然就找不到要訪問的檔案了。
最後的配置如下:
PHP FPM 的管理和配置
php fpm 是 fastcgi 的程序管理器。php fpm 管理 master 主程序理解以下訊號 檢視 php fpm 使用者 ps aux grep php fpm 檢視 php fpm 程序 pid ps ef grep php fpm 啟動 php fpm php fpm d 關閉 p...
PHP FPM 的管理和配置
php fpm 是 fastcgi 的程序管理器。php fpm 管理 master 主程序理解以下訊號 檢視 php fpm 使用者 ps aux grep php fpm 檢視 php fpm 程序 pid ps ef grep php fpm 啟動 php fpm php fpm d 關閉 p...
LNMP nginx配置和 php fpm通道詳解
一 fastcgi?fastcgi是由cgi common gateway inte ce,通用閘道器介面 發展而來,是http伺服器 nginx apache 和動態指令碼語言 php 之間的通訊介面。記住,fastcgi只是乙個介面。fastcgi的優點 fastcgi採用c s結構,可以將ht...