关于nginx
nginx是轻量级,稳定性,并发性好的web服务器。
主要有三方面的应用
1:反向代理服务
代理我们访问的目标服务器,然后将请求转发给目标服务器。用户感知不到。
2,负载均衡
对于高并发项目来说,应用常见,这个我在前面分布式也说到过。
3,动静分离
把动态和静态请求分开处理。
nginx配置
/usr/sbin/nginx -t 检查配置文件
/usr/sbin/nginx -s reload 重读配置
service nginx start 启动nginx
service nginx restart 重启 nginx
nginx -v 查看nginx版本
/usr/local/nginx/conf/nginx.conf 指定配置文件–配置文件的位置
关于php-fpm
/usr/local/etc/php-fpm.conf 这是fpm配置文件的位置
为了解决不同语言的解释器和webserver的通信。出现了cgi协议。
php-fpm即php-Fastcgi Process Manager.
php-fpm是 FastCGI 的实现,并提供了进程管理的功能。
进程包含 master 进程和 worker 进程两种进程。
master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。
下面是一段关于nginx配置文件内容解释
server {
listen 80; #监听80端口,接收http请求
server_name www.xxxx.com; #就是网站地址
root /usr/local/etc/nginx/www/ceshi; # 准备存放代码工程的路径(根目录)
#路由到网站根目录www.xxxx.com时候的处理
location / {
index index.php; #跳转到www.xxxx.com/index.php
autoindex on;
}
#当请求网站下php文件的时候,反向代理到php-fpm
location ~ \.php$ {
include /usr/local/etc/nginx/fastcgi.conf; #加载nginx的fastcgi模块
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000; #nginx fastcgi进程监听的IP地址和端口
}
}
查看fpm进程 ps -ef | grep fpm
可以看到一个master进程,三个worker进程
pid是1451
nginx和php-fpm的结合的流程图如下图