Title

nginx+php-fpm配置及详解

  • 作者:Mr_Yan
  • linux
  • 时间:2018-07-24 04:22:44
  • 1125人已阅读


nginx+php-fpm配置及详解

环境搭建见上一篇

debian8安装php7+nginx+mysql


注意不要copy  请根据自己的目录结构以及实际情况配置   


一、nginx.conf配置及详解

user www-data;
#启动进程 通常设置成和CPU的数量相等
worker_processes 4;
#为每个进程分配CPU ,上例是将四个进程分配到4个CPU ,或者将一个进程分配到多个CPU, 也可以写多个根据实际情况设置
worker_cpu_affinity 00000001  00000010   00000100   00001000;

pid /run/nginx.pid;
#工作模式及链接上限

events {
#是多路复用I/O 中的一种方式,但是仅用于LINUX2.6以上内核,可以大大提高NGINX性能
   use epoll;
#单个后台 worker process 进程的最大并发连接数(最大链接数=连接数*进程数)
   worker_connections 768;
}



http {
#设定mime 类型 类型由mime.types文件定义
   include /etc/nginx/mime.types;
   default_type application/octet-stream;
#传递4**5**错误到客户端
fastcgi_intercept_errors on;
#设置字符集
charset utf-8;

#设定请求缓存
server_names_hash_bucket_size 128;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
server_tokens  off;

#shendfile 指令指定nginx 是否调用sendfile 函数 (zero copy 方式)来输出文件,开启高效文件传输模式,
#对于普通应用必须设为ON 也可以默认不设置
#如果用来进行下载等应用磁盘I/O负重应用,可设置为OFF 以平衡磁盘与网络I/O处理速度,降低系统的uptime
sendfile on;

#防止网络阻塞
tcp_nopush on;
#提高数据的实时响应性
tcp_nodelay on;


#缓冲区优化
#超时时间,客户端到服务器端的链接持续有效时间,可避免重新建立链接
keepalive_timeout 65;
#缓冲区代理缓冲用户端请求的最大字节数
client_body_buffer_size 512k;

#nginx跟后端服务器连接超时时间(代理链接超时)
proxy_connect_timeout 5;
#连接成功后,后端服务器响应时间(代理接收超时)
proxy_read_timeout 60;
#后端服务器数据回传时间(代理发送超时)
proxy_send_timeout 5;
#设置代理服务器 nginx 保存用户头信息缓冲区的大小
proxy_buffer_size 16k;
#缓冲区,网页平均在32K一下的话,这样设置   proxy_busy_buffers_size 64k; (高负荷下缓冲大小)
proxy_buffers 4 64k;
#缓冲区,网页平均在32K一下的话,这样设置   proxy_busy_buffers_size 64k; (高负荷下缓冲大小)
proxy_busy_buffers_size 128k;
#上传文件大小
proxy_temp_file_write_size 128k;

#开启gzip压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;


#设置日志格式
log_format main '$remote_addr -  $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent" $request_time ';


include vhosts.conf;

}


二、虚拟主机配置 vhosts.conf

注意自己的fastcgi 的工作模式是什么

查看目录为 /etc/php/7.0/fpm/pool.d/www.conf

image.png

server {

#侦听80端口
   listen 80;
#解析域名
server_name www.xxx.com  xxx.com ;
#默认访问文件
index index.html index.php ;
#郁闷指向网站目录
root /home/www/yan/public;


location /
{
   index  index.html index.htm index.php;

#设置伪静态, rewrite  ^(.*)$  /index.php?s=/$1  last;  此规则适用于TP5 其他PHP框架自行定义
if (  !-e $request_filename ) {
       rewrite  ^(.*)$  /index.php?s=/$1  last;
break;

}
}

#设置支持php
location ~ \.php(.*)$
   {
#网站根目录
       root /home/www/yan/public;
#Nginx和PHP-FPM的进程间通信有两种方式我的是sock
fastcgi_pass   unix:/run/php/php7.0-fpm.sock;
#fastcgi_pass   127.0.0.1:9000;#tcp mode;

#PATHINFO配置
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#脚本文件请求的路径,也就是说当访问127.0.0.1/index.php的时候,需要读取网站根目录下面的index.php文件,如果没有配置这一配置项时,
#nginx不回去网站根目录下访问.php文件,所以返回空白
fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;

#可自定义变量
fastcgi_param  PATH_INFO  $fastcgi_path_info;
fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;

include        fastcgi_params;

}


#日志存放位置
access_log /home/logs/mryan888/access.log main;

error_log /home/logs/mryan888/error.log crit;

}


三、配置完成后 执行 nginx -t 命令 查看是否配置成功

image.png


配置成功之后 重启nginx 

service nginx restart


在刚才配置的的虚拟主机目录下新建php文件 输出 phpinfo查看是否配置生效

image.png






本文为MrYan原创文章,转载无需和我联系,但请注明来自MrYan个人博客:www.mryan888.com

文章评论

Top