Nginx簡明:
特性:
采用模塊化設計,較好的擴展性;
高可靠性 ?master/worker
支持熱部署:不停機更新配置文件、更換日志文件、列新服務器版本
低內存消耗:10000個keep-alive連接模式下的非活動連接僅消耗2.5M內存;
event-dreiven,aio,mmap
基本功能;
靜態資源的web服務器
http協議反向代理服務器;
pop3/imap4協議反向代理服務器;
FastCgi,uWSCGI等協議;
模塊化(非DSO),有zip,ssl,…;
web服務器相關的功能;
虛擬主機、keepalive、訪問日志、url rewrite 、路徑別名、基于ip及用戶的訪問控制;
支持速率限制及并發數限制,…;
Nginx的程序架構:
master/worker
一個master進程,可生成一個或多個worker進程;
master;加載配置文件、管理worker進程、平滑升級、…
worker:http服務、http代理、fstcgi代理 …
緩存對象的相關數據
cache loader 載入緩存對象
cache manager 管理緩存對象
模塊類型
核心模塊;core module
標準模塊: Standard HTTP modules Optional HTTP moduels Mail modules 3rd party modules ;
nginx一般用于靜態資源的web服務器 http協議反向代理
nginx高度模塊:高度模塊化,但其模塊早期不支持DSO機制; 近期版本支持動態裝載和動態卸載
nginx的功用;
靜態的web資源服務器; (圖片服務器,或js/css/html/txt等靜態的資源服務器)
結合FastCGI/uwCGI/SCGI等協議反代動態資源請求
http/https協議的反向代理 ;
imap4/pop3協議的么向代理 ;
tcp/udp協議的請求轉發;
LNMP環境的搭建 (nginx+php-fpm):基于fastcgi
CGI全稱為公共網關接口(Common Gateway Interface)
php-fpm 工作方式:(類似于httpd的prefork)
listen=127.0.0.1:9000
listen.allowed_clients=127.0.0.1
pm=dynamic |static
pm.start_servers:啟動fpm進程時啟動的工作進程數量;
pm.min_spare_server:最少空閑進程數;
pm.max_children:最大工作進程數;
user=USERNAME
group=GROUPNAME
fastcgi模塊指令;
fastcgi_pass address;
address是fpm服務器監聽的地址和端口;
示例:fastcgi 127.0.0.1:9000;
fastcgi_index name; fastcgi應用的主面名稱;
fastcgi_param parameter avlue [if_not_empty];
傳遞給fpm服務器的參數及其值
path:文件系統路徑,用于存儲緩存的文件數據 ;
max_size=size:定義此路徑下的多大空間用于存儲緩存數據 ;
levels=#[:#[:#]]:緩存目錄層級定義;
levels=1:2
key_zone=name:size
內存中用于緩存k/v映射關系的空間名稱及大?。?br />inactive=time
注意:只能定義在httpd上下文;
fastcgi_cache zone | off;
是否啟用cache,如果啟用;
fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=fcgicache:10m;
在location中調用;
fastcgi_cache fcgicache;
fastcgi_cache_key string;
定義要使用的緩存鍵;
例如:fastcgi_cache_key $request_uri;
fastcgi_cache_methods GET | HEAD |POST…;
緩存哪些類型的請求的相關數據;
fastcgi_cache_min_users number;
fastcgi_cache_valid [code…] time;
對不同響應碼設定其可緩存時長;
注意:調用緩存時,至少應該指定三個參數;
fastcgi_cache
fastcgi_cache_key
fastcgi_cache_valid
配置拓撲
安裝:
# yum -y install php-fpm php-mysql php-mbstring php-gd php-xml nginx mariadb # rpm -ql php-fpm 可以查看其生成的文件 # systemctl start php-fpm mariadb nginx # vim /etc/nginx/conf.d/defult.conf 修改 location / { root /usr/share/nginx/html; index index.html index.htm index.php; }
添加
location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name; include fastcgi_params; }
# vim /usr/share/nginx/html/index.php <h1>www.rj.com NODE2</h1> <?php $link=mysql_connect("localhost","root","centos.123"); if(!$link)echo"CNONNECT FILED!"; else echo "CAN CNONNECT !"; ?>
訪問http://172.16.23.10/index.php后可以看到CAN CNONNECT字樣時,表示php可以正常解析,并能夠連接到mysql
原創文章,作者:nene,如若轉載,請注明出處:http://www.www58058.com/88103