約 4,303,929 件
https://w.atwiki.jp/nginx/pages/15.html
nginx php nginxでphpを動作させる方法を書いています。 nginxでphpを動作させるにはspawn-fcgi(lighthttpdというパッケージに含まれている)というラッパーが必要になります。 つまりnginx --- spawn-fcgi --- phpという風に連携させます。 http //d.hatena.ne.jp/demuyan/20080726 ここを参考にしています。 phpのインストール sudo aptitude install php5-common php5-cgi php5-mysql php5-cli spawn-fcgiを使ってphpを動作させます。 spawn-fcgiはlighttpdに含まれています。 lighttpdのインストール php5-cgiをFastCGIとして起動させるスクリプト(/usr/bin/php5-fastcgi)を作成します。 /usr/bin/php5-fastcgiの内容 重要なのは「-C 2」です。 このCオプションはspawn-fcgiのプロセス数を意味します。アクセス数が多ければ多いほど、この値を大きくしていきます。 アクセスがこれを超えると、いわゆるサーバーが落ちるという状態になります。 #!/bin/sh /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -C 2 -f /usr/bin/php5-cgi php5-cgiの実行権限を設定します。 sudo chmod +x /usr/bin/php5-fastcgi リンクを作成します。 sudo ln -s /usr/bin/php5-fastcgi /usr/bin/php-fastcgi 起動用スクリプト/etc/init.d/fastcgiを作成します。 /etc/init.d/fastcgiの内容 #!/bin/bash PHP_SCRIPT=/usr/bin/php-fastcgi RETVAL=0 case "$1" in start) echo "Starting fastcgi" $PHP_SCRIPT RETVAL=$? ;; stop) echo "Stopping fastcgi" killall -9 php5-cgi RETVAL=$? ;; restart) echo "Restarting fastcgi" killall -9 php5-cgi $PHP_SCRIPT RETVAL=$? ;; *) echo "Usage php-fastcgi {start|stop|restart}" exit 1 ;; esac exit $RETVAL 権限を設定します。 sudo chmod 755 /etc/init.d/fastcgi fastcgiを起動してみます。 sudo /etc/init.d/fastcgi start サーバー起動時に起動するようにします。 sudo update-rc.d fastcgi defaults /etc/nginx/sites-available/domain1.comのserver毎にに以下の内容を追加します。 location ~ \.php$ { fastcgi_pass 127.0.0.1 9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/user/public_html/mydomain.com/public$fastcgi_script_name; include /etc/nginx/fastcgi_params; } /etc/nginx/sites-available/domain1.comの内容 下のようになります。 server { listen 80; server_name www.domain1.com; access_log /home/demo/public_html/domain1.com/log/access.log; error_log /home/demo/public_html/domain1.com/log/error.log; location / { root /home/demo/public_html/domain1.com/public/; index index.html index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1 9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/demo/public_html/domain1.com/public$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } server { listen 80; server_name domain1.com; access_log /home/demo/public_html/domain1.com/log/access.log; error_log /home/demo/public_html/domain1.com/log/error.log; location / { root /home/demo/public_html/domain1.com/public/; index index.html index.php; } location ~ \.php$ { fastcgi_pass 127.0.0.1 9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/demo/public_html/domain1.com/public$fastcgi_script_name; include /etc/nginx/fastcgi_params; } } nginxを再起動 sudo /etc/init.d/nginx stop sudo /etc/init.d/nginx start これでnginxでphpスクリプトが動作します。 ここまでがnginxの基本設定となります。 お薦めの海外サーバー linodeでnginxを作動させています。
https://w.atwiki.jp/nginx/pages/28.html
nginx expires nginxでexpiresを設定する方法 expiresとは有効期限のことです。 expiresを設定するとexpiresヘッダーをつけることになります。 jpgやgifなどの画像、jsのジャバスクリプト、cssのスタイルシートは一度読み込めば、ほとんど変更されないファイルです。 これらのファイルにexpiresを設定しましょう。 ネットワーク負荷の低減につながります。 nginxでは簡単にできます。 運用するドメイン毎に設定する必要があります。 serverセクションに以下を記入してください。 location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ { root /home/demo/public_html/domain1.com/public; expires 30d; } rootでデフォルトディレクトリを設定します。ftpでのトップディレクトリのことです。 ここで設定したディレクトリ以下を参照しにいきます。 たとえば、http //www.domain1.com/images/image.jpgの画像ファイルの場合は、 /home/demo/public_html/domain1.com/public/images/image.jpg に画像ファイルがなければいけません。 expires 30d ここでは30日間を有効にします。 nginxを再起用させると有効になります。 簡単にできました。
https://w.atwiki.jp/nginx/pages/13.html
nginx バーチャルホスト nginxでは複数のドメインを運用することができます。(バーチャルホスト) ドメインごとに基本的なレイアウトを作成していきます。 demo一般ユーザーでdomain1.comというドメインを運営する場合です。 ディレクトリを作成します。 mkdir /home/demo/public_html サブフォルダを作成します。 mkdir -p /home/demo/public_html/domain1.com/{public,private,log,backup} トップのindex.htmlを作成してします。 vi /home/demo/public_html/domain1.com/public/index.html index.htmlの内容 html head title domain1.com /title /head body h1 domain1.com /h1 /body /html バーチャルホストの設定ファイルを作成します。 index.htmlが存在しない場合にはindex.phpが表示されるようにします。 sudo vi /etc/nginx/sites-available/domain1.com /etc/nginx/sites-available/domain1.comの内容 server { listen 80; server_name www.domain1.com; access_log /home/demo/public_html/domain1.com/log/access.log; error_log /home/demo/public_html/domain1.com/log/error.log; location / { root /home/demo/public_html/domain1.com/public/; index index.html index.php; } } server { listen 80; server_name domain1.com; access_log /home/demo/public_html/domain1.com/log/access.log; error_log /home/demo/public_html/domain1.com/log/error.log; location / { root /home/demo/public_html/domain1.com/public/; index index.html index.php; } } リンクを作成します。一行です。 sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/domain1.com nginxを再起動させます。 注意 このとき、sudo /etc/init.d/nginx restartを使わないこと。再起動しないことがよくありました。 sudo /etc/init.d/nginx stop sudo /etc/init.d/nginx start ブラウザでアクセス http //www.domain1.com 正常に動作していれば、 domain1.comと表示されます。 お薦めの海外サーバー linodeでnginxを作動させています。
https://w.atwiki.jp/nginx/pages/18.html
nginx access.log /home/domain/public_html/domain.com/log/access.log アクセスログは放っておくと、巨大なファイルになっていることがあるので要注意。 6Gバイトを超えていました。 ファイルサイズを指定できるのか調べた。 http //wiki.codemongers.com/NginxHttpLogModule access_log /home/domain/public_html/domain.com/log/access.log combined buffer=32k; 一応これで動いているがどうだろう? フォーマットを省略するとエラーになる。 本家にも書いてあるようにgzipにするとエラーになります。 combinedにすると良いようです。 アクセスログが巨大化するので、定期的にcronでファイルサイズをゼロにします。 http //www.perfectsky.net/blog/?p=16 ここを参照 cp /dev/null foo.log このコマンドでファイルをゼロにできます。 cronで設定すると定期的にアクセスログをクリアできます。 お薦めの海外サーバー linodeでnginxを作動させています。
https://w.atwiki.jp/nginx/pages/14.html
nginx config nginx.confを設定します。 sudo vi /etc/nginx/nginx.conf worker_processesをデフォルトの1から4に変更します。 nginxは同時に1つ以上のnginxを走らせることができます。 4以上の数値を設定することができますが、効果が薄れてしまいます。 worker_processes 4; worker_connectionsはそのままです。 events { worker_connections 1024; } この場合、4 X 1024で 最大4096のクライアントを実行します。 max_clients = worker_processes * worker_connections 長すぎるのでkeepalive_timeoutを65から45に変更 keepalive_timeout 45; ngixnではhtmlやcss, javascriptの転送をgzip圧縮することができます。 gzip_comp_levelは 0から9までの値を取ります。9が最高の圧縮。あまり気にしなくてもいいです。 gzip on; gzip_comp_level 2; gzip_proxied any; gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; 次はバーチャルホストの設定です。 お薦めの海外サーバー linodeでnginxを作動させています。
https://w.atwiki.jp/nginx/pages/22.html
nginxでウェブサイトを運営していてようやく挙動が判ってきました。 サーバーが落ちるときの大きな原因はspawn-fcgiにあります。 phpやnginxが原因になったことは一度もありません。 rootでログインできて、サーバーが表示されなくなったときはspawn-fcgiを疑います。 設定場所は1箇所です。 /usr/bin/php-fastcgiファイルの -C オプションの値を上げます。 クエストに対して、ここの値が小さいとサーバーが遅くなります。 500に設定してあります。 #!/bin/sh /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -C 500 -f /usr/bin/php5-cgi /etc/nginx/nginx.confファイルのworker_processesは変更しません。 4に設定してあります。 積んでいるCPUの数と同じにしておきます。 お薦めの海外サーバー linodeでnginxを作動させています。
https://w.atwiki.jp/nginx/pages/26.html
nginx@ウィキ メニュー nginxとは nginx install nginx config nginx バーチャルホスト nginx rewrite nginx reboot nginx access log nginx 404 nginx webalizer nginx apc高速化 nginx サーバーが落ちたとき nginx サーバー障害
https://w.atwiki.jp/nginx/pages/12.html
nginx @ ウィキではnginxのインストール方法、設定方法を解説しています。 nginxとはロシアで開発されている、軽量かつ高速なWebサーバです。 バイナリのサイズがたったの約600キロバイトしかありません。 少ないメモリでも大量のアクセスを捌くことができます。 Apacheの15メガバイトと比較すると、その軽量さがわかります。 二度とApacheを使おうと思いません。 Apacheさんなんていらんかったんや! nginxを採用している有名サイト google(nginxを改良した?) fc2ブログ ニコニコ動画 お薦めの海外サーバー linodeでnginxを作動させています。
https://w.atwiki.jp/nginx/pages/16.html
nginx rewrite nginxにはrewrite機能が備わっています。 動的アドレスを静的アドレスに変換することができます。 http //wiki.codemongers.com/NginxHttpRewriteModule ここを参考 ドメインの設定ファイルに追加します。 vi /etc/nginx/sites-available/domain1.com rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last; apacheのrewriteとは微妙に異なります。 RewriteRuleがrewriteに変更 [L]がlast;に変更されています。 [[お薦めの海外サーバー http //www.linode.com/]] linodeでnginxを作動させています。
https://w.atwiki.jp/nginx/pages/11.html
nginx install linuxサーバーでnginxをインストールします。 nginxのインストール sudo aptitude install nginx nginxの起動 sudo /etc/init.d/nginx start ブラウザで正常に起動しているか確認 http //yourdomainip.com 正常の場合は Welcome to nginx! と表示されます。 お薦めの海外サーバー linodeでnginxを作動させています。