ホームページ > バックエンド開発 > PHPチュートリアル > Nginx&&PHP-FPM 構成および最適化ガイド (パート 2)

Nginx&&PHP-FPM 構成および最適化ガイド (パート 2)

WBOY
リリース: 2016-06-13 13:21:40
オリジナル
819 人が閲覧しました

Nginx&&PHP-FPM 構成および最適化ガイド (パート 1)

この記事では、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 環境をセットアップしていない場合は、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 設定ファイル

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
ログイン後にコピー

メイン設定ファイル 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;
}
ログイン後にコピー

メイン設定ファイル nginx.conf のパラメータ最適化のキーポイント

Nginx&&PHP-FPM 構成および最適化ガイド (パート 1)

1.worker_processes と worker_connections の構成

デフォルト構成のworker_processesとworker_connectionの数は少し少なく、1000回/秒以内のリクエストしか処理できません。

#默认配置
worker_processes  1;
worker_connections  1024;
ログイン後にコピー

通常、worker_processes は CPU の数に設定され、worker_connections は 1024 に維持できます。 cat /proc/cpuinfo |grepprocessor を使用して CPU の数を確認できます。

2. Ngnix のバージョン情報を非表示にします

server_tokens off;
ログイン後にコピー

3. システムの隠しファイルへの Web アクセスを拒否します

location ~ /\. {
    access_log off;
    log_not_found off; 
    deny all;
}
ログイン後にコピー

4. ファイルアップロードの最大サイズを制限する

client_max_body_size 20m;
client_body_buffer_size 128k;
ログイン後にコピー

5. Nginx 静的ファイル キャッシュ制御

ブラウザのキャッシュは帯域幅の節約に非常に役立ち、Nginx での設定も非常に簡単です

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log        off;
    log_not_found     off;
    expires           360d;
}
ログイン後にコピー


6. Ngnix は PHP リクエストを PHP-FPM に転送します

# 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;
}
ログイン後にコピー
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/css
application/xml;
gzip_vary on;
ログイン後にコピー

********************************************** *
* 著者: イェ・ウェンタオ
* この記事へのリンク: Nginx&&PHP-FPM 構成および最適化ガイド (パート 1)
******************転載の際は出典を明記してください***************


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート