2

Web サイトでパフォーマンスの問題が発生しています。私の構成は、ubuntu 11.04 で wordpress/nginx/php-fpm を使用した 1G VPS です。ボトルネックは、ブラウザがサーバーからの最初のバイトを待っているときです。接続を開始した後、サーバーからの最初の応答を待つだけで 4 ~ 6 秒かかります (この Web サイトは新しく、トラフィックが非常に少なく、1 日あたりのアクセス数は約 50 ~ 150 です)。以下は私のnginx confです。問題がどこにあるかを理解するのに役立つことを願っています. この構成に最適化されている可能性のある問題があるかどうかを知りたいです。また、誰かが私の構成に合ったプロファイリング/分析ツールを使用するように勧めることができれば.

注: ユーザー名をmyusernameに、ドメインをに置き換えましたmydomain.com

nginx.conf

user myusername;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {


        index index.php index.html index.htm;

    sendfile on;
    # tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 5;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64;
    # server_name_in_redirect off;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    client_max_body_size 50m;


    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";

    # gzip_vary on;
    # gzip_proxied any;
    # gzip_comp_level 6;
    # gzip_buffers 16 8k;
    # gzip_http_version 1.1;
    # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    ##
    # Virtual Host Configs
    ##

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

sites-enabled/default

server {

    listen   80; ## listen for ipv4; this line is default and implied
    listen   [::]:80 default ipv6only=on; ## listen for ipv6
root /home/myusername/www;

# Make site accessible from http://localhost/
server_name mydomain.com;

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to index.html
    try_files $uri $uri/ /index.php;
}

location /doc {
    # root /usr/share;
    autoindex on;
    allow 127.0.0.1;
    deny all;
}

location /images {
    # root /usr/share;
    autoindex off;
}

error_page 404 = @wordpress;
log_not_found off;

location @wordpress {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_NAME /index.php;
}

location ^~ /files/ {
        rewrite /files/(.+) /wp-includes/ms-files.php?file=$1 last;
    }


# redirect server error pages to the static page /50x.html
#
#error_page 500 502 503 504 /50x.html;
#location = /50x.html {
#   root /usr/share/nginx/www;
#}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#   proxy_pass http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
        try_files $uri @wordpress;
        fastcgi_index index.php;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
    deny all;
}
location ^~ /blogs.dir/ {
        internal;
        root /home/myusername/www/wp-content;
    }
}
4

2 に答える 2

2

Wordpress サイトのように見えますが、nginx 構成自体よりもパフォーマンスの問題であることに傾倒します。

いくつかの推奨事項:

1 - APC がインストールされ、有効になっていることを確認します

2 - サーバー側のキャッシュ プラグイン (W3 Total Cache または Supercache) をインストールし、APC をバッキング ストアとして使用するように構成します (すべてのキャッシュ レイヤーをオンにします)。

プロファイラーに関する限り、私はNewRelicの大ファンであり、その Pro レベルは最初の 2 週間 (通常はホット スポットを見つけるのに十分な期間) は無料で、基本的なパフォーマンス情報は永久に無料です。

于 2012-07-11T20:31:42.653 に答える