Heim > Backend-Entwicklung > PHP-Tutorial > Nginx&&PHP-FPM配置及优化指南(下)

Nginx&&PHP-FPM配置及优化指南(下)

WBOY
Freigeben: 2016-06-13 10:34:23
Original
858 Leute haben es durchsucht

Nginx&&PHP-FPM配置及优化指南(上)

本文介绍在Centos5.8/6.2&&RedHat(RHEL) 5.8/6.2下LEMP/LNMP环境下的Nginx&&PHP-FPM的WEB服务器配置及优化指南。

截至目前,各软件版本为

  • Nginx 1.2.2
  • PHP && PHP-FPM5.4.4 

如果您还没有搭建LEMP环境,可以参照我之前写过一篇文章 LEMP(或LNMP)高性能的WEB服务器在CentOS6.2/5.8下的Yum搭建流程。在"LEMP搭建指南"中我只给出了Nginx&&PHP-FPM最基本的配置说明。

在本文中将更深入的介绍Nginx&&PHP-FPM的WEB服务器配置。

Nginx 配置文件也可以参考:http://wiki.nginx.org/NginxChs

Nginx&&PHP-FPM配置及优化指南(上)

Nginx的配置文件

Nginx的配置文件放在/etc/nginx路径之下,运行ls -l /etc/nginx 输出

total 36drwxr-xr-x. 2 root root 4096 Jul 11 19:52 conf.d-rw-r--r--. 1 root root  964 Jul  3 19:53 fastcgi_params-rw-r--r--. 1 root root 2837 Jul  3 19:53 koi-utf-rw-r--r--. 1 root root 2223 Jul  3 19:53 koi-win-rw-r--r--. 1 root root 3463 Jul  3 19:53 mime.types-rw-r--r--. 1 root root  643 Jul  3 19:50 nginx.conf-rw-r--r--. 1 root root  596 Jul  3 19:53 scgi_params-rw-r--r--. 1 root root  623 Jul  3 19:53 uwsgi_params-rw-r--r--. 1 root root 3610 Jul  3 19:53 win-utf
Nach dem Login kopieren

主配置文件nginx.conf详细说明

#运行用户user  nginx;#进程数目,通常设置成和cpu的数量相等worker_processes  1;#全局错误日志error_log  /var/log/nginx/error.log warn;#PID文件pid        /var/run/nginx.pid;#工作模式及连接数上限events {    #单个worker_process进程的最大并发链接数    worker_connections  1024;}#设定http服务器,利用它的反向代理功能还可以提供负载均衡支持http {    #设定mime类型,类型由mime.type文件定义    include       /etc/nginx/mime.types;    #制定默认MIME类型为二进制字节流    default_type  application/octet-stream;    #日志格式,参考URL    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';    #日志存放路径    access_log  /var/log/nginx/access.log  main;    #开启调用Linux的sendfile(),提供文件传输效率    #sendfile一般设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime    sendfile        on;    #是否允许使用socket的TCP_NOPUSH或TCP_CORK选项    #tcp_nopush     on;    #指定客户端连接保持活动的超时时间,在这个时间之后,服务器会关掉连接    keepalive_timeout  65;    #设置开启gzip压缩,参考URL    #gzip  on;    #虚拟主机配置文件引入    include /etc/nginx/conf.d/*.conf;}
Nach dem Login kopieren

主配置文件nginx.conf参数优化要点

Nginx&&PHP-FPM配置及优化指南(上)

1. worker_processes及 worker_connections配置

默认配置中worker_processes及 worker_connections的数目有点小,只能应付1000次/秒以内的请求。

#默认配置worker_processes  1;worker_connections  1024;
Nach dem Login kopieren

通常情况下,worker_processes设置为cpu数目,worker_connections保持1024即可。你可以使用cat /proc/cpuinfo |grep processor来查看CPU数量

2. 隐藏Ngnix版本信息

server_tokens off;
Nach dem Login kopieren

3. 拒绝web访问系统隐藏文件

location ~ /\. {    access_log off;    log_not_found off;     deny all;}
Nach dem Login kopieren

4. 限制最大文件上传大小 

client_max_body_size 20m;client_body_buffer_size 128k;
Nach dem Login kopieren

5. Nginx静态文件缓存控制

浏览器缓存非常有利于节省带宽,在Nginx中非常容易配置

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {    access_log        off;    log_not_found     off;    expires           360d;}
Nach dem Login kopieren


6. Ngnix转发PHP请求至PHP-FPM

# Pass PHP scripts to PHP-FPMlocation ~* \.php$ {    try_files       $uri /index.php;    fastcgi_index   index.php;    fastcgi_pass    127.0.0.1:9000;    #fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;    include         fastcgi_params;    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;}
Nach dem Login kopieren
7. 开启GZIP压缩

gzip on;gzip_min_length  1k;gzip_buffers     4 16k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types       text/plain application/x-javascript text/cssapplication/xml;gzip_vary on;
Nach dem Login kopieren

********************************************
* 作者:叶文涛 
* 本文链接:Nginx&&PHP-FPM配置及优化指南(上)
******************转载请注明来源 ***************


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage