Nginx&&PHP-FPM 構成および最適化ガイド (パート 1)
この記事では、Centos5.8/6.2&&RedHat (RHEL) 5.8/6.2 の LEMP/LNMP 環境における Nginx&&PHP-FPM の WEB サーバー構成および最適化ガイドを紹介します。 。
現時点でのソフトウェアのバージョンは
LEMP 環境をセットアップしていない場合は、CentOS6.2/5.8 での LEMP (または LNMP) 高パフォーマンス WEB サーバーの Yum セットアップ プロセスについて以前に書いた記事を参照してください。 「LEMP 構築ガイド」では、Nginx&&PHP-FPM の最も基本的な設定手順のみを説明しました。
この記事では、Nginx&&PHP-FPM の WEB サーバー構成をさらに詳しく紹介します。
Nginx 設定ファイルは http://wiki.nginx.org/NginxChs も参照できます
Nginx&&PHP-FPM 構成および最適化ガイド (パート 1)
Nginx 構成ファイルを /etc/nginx パスの下に置き、ls -l /etc/nginx を実行して出力します
total 36 drwxr-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
#运行用户 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; }
Nginx&&PHP-FPM 構成および最適化ガイド (パート 1)
デフォルト構成のworker_processesとworker_connectionの数は少し少なく、1000回/秒以内のリクエストしか処理できません。
#默认配置 worker_processes 1; worker_connections 1024;
server_tokens off;
location ~ /\. { access_log off; log_not_found off; deny all; }
client_max_body_size 20m; client_body_buffer_size 128k;
ブラウザのキャッシュは帯域幅の節約に非常に役立ち、Nginx での設定も非常に簡単です
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; }
# Pass PHP scripts to PHP-FPM location ~* \.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; }
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/css application/xml; gzip_vary on;