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映射关系的空间名称及大小;
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.178linux.com/88103