ユーザ用ツール

サイト用ツール


nginx

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
nginx [2011/09/10 07:25] nullponnginx [2020/05/29 09:30] (現在) nullpon
行 1: 行 1:
 ====== nginx ====== ====== nginx ======
-非同期IOで動作する高速なHTTPサーバ。+非同期IOで動作する高速なHTTPサーバ。読み方は「えんじんえっくす」
  
  
行 58: 行 58:
 ※ この設定は1 worker_processesあたりの設定? worker_connectionsと同じで良いのか? 仮にそうだとしてkeep aliveやssiを使っていると1コネクションで複数ファイルを開くので、その場合はconnectionより大きい値を指定しないといけない? 要調査。 ※ この設定は1 worker_processesあたりの設定? worker_connectionsと同じで良いのか? 仮にそうだとしてkeep aliveやssiを使っていると1コネクションで複数ファイルを開くので、その場合はconnectionより大きい値を指定しないといけない? 要調査。
  
-===== passenger ===== +===== ログローテーション ===== 
-nginx + passenger でrailsアプリを起動する。 +Ubuntuのログローテーショの例(月単位でロテーション)
- +
-Ubuntu 10.04では以下ライブラリをイストルする+
  
 <code> <code>
-$ sudo aptitude install build-essential +/var/log/nginx/*.log { 
-$ sudo aptitude install libcurl4-openssl-dev+        monthly 
 +        missingok 
 +        rotate 12 
 +        compress 
 +        delaycompress 
 +        notifempty 
 +        create 640 root adm 
 +        sharedscripts 
 +        postrotate 
 +                test -f /var/run/nginx.pid && kill -USR1 `cat /var/run/nginx.pid` 
 +        endscript 
 +}
 </code> </code>
  
-rubyやgem、rails等のインストー後、gempassengerをンストー。ここではバージョンを明示しているが、特に指定せず最新版入れると良い+nginxはUSR1シグナルでログファイルを開き直す
  
-<code> 
-$ sudo gem install -v=3.0.7 passenger --no-rdoc --no-ri 
-$ sudo /var/lib/gems/1.8/gems/passenger-3.0.7/bin/passenger-install-nginx-module 
-</code> 
- 
-とりあえず起動と停止 
- 
-<code> 
-$ sudo /opt/nginx/sbin/nginx  
-$ sudo /opt/nginx/sbin/nginx -s stop 
-</code> 
  
-Railsアプリの実行ユーザはAapche版と同じく environment.rb の所有ユーザとなる。 
  
 ==== nginx.confに設定を追加 ==== ==== nginx.confに設定を追加 ====
行 138: 行 135:
  
 ===== PHP ===== ===== PHP =====
-FastCGIでphpを動作させる。php-fpmまたはspawn-fcgiを使う。+Apacheにおけるmod_phpのようなモジュールは無いので、FastCGIでphpを動作させる。php-fpmまたはspawn-fcgiを使う。
  
 ==== php-fpm ==== ==== php-fpm ====
 PHP-FPM(PHP FastCGI Process Manager)はPHP5.3から導入されたFCGIのプロセス管理ツール。 PHP-FPM(PHP FastCGI Process Manager)はPHP5.3から導入されたFCGIのプロセス管理ツール。
  
-Ubuntu 10.04標準aptリポジトリには無い。nginxチームが作成したリポジトリにパッケーある。 +Ubuntu 10.04標準aptリポジトリにはパッケージが無い。nginxチームが作成したリポジトリにあるので、そのリポトリを追加する。ただし標準のリポジトリではないので、次のLTS(12.04)リリース後はサポートされない可能性もあるので注意
 <code> <code>
 $ sudo aptitude install python-software-properties $ sudo aptitude install python-software-properties
 $ sudo add-apt-repository ppa:nginx/php5 $ sudo add-apt-repository ppa:nginx/php5
 $ sudo aptitude update $ sudo aptitude update
-$ sudo aptitude install php5-fpm 
 </code> </code>
  
-起動スクリプトも作成される。デフォルトでは9000番ポートでFCGI起動する。+インストール。起動スクリプトやconfigも作成される。デフォルトではport 9000でFCGI起動する。 
 +<code> 
 +$ sudo aptitude install php5-fpm 
 +</code>
  
 起動と停止 起動と停止
行 160: 行 158:
 $ sudo service php5-fpm stop $ sudo service php5-fpm stop
 </code> </code>
 +
 +なお、PHPをFCGIプロセスとして起動するためには、FCGIを有効にしてPHPをビルドする必要がある。aptのPHPは有効になっているので気にしなくていいが独自ビルドする場合は注意する。
  
 ==== spawn-fcgi ==== ==== spawn-fcgi ====
行 242: 行 242:
 </code> </code>
  
 +===== x-accel-redirect =====
 +
 +nginx をバックエンドアプリケーションのプロキシとして使っている場合に、アプリにproxyした後にnginxがファイルを返すようにする仕組み。
 +
 +主な用途は認証つきの静的ファイルダウンロード。nginxがファイルを返すためバックエンドアプリケーションに転送負荷をかけずに認証つきのファイルダウンロードを実装できる
 +
 +アプリ側は権限などのチェックを行い、問題なければ200レスポンスに以下のようなレスポンスヘッダをつける
 +
 +<code>
 +X-Accel-Redirect: /download/fifename1.png
 +</code>
 +
 +nginx側
 +
 +<code>
 +// アプリへのプロキシ
 +location / {
 +  proxy_pass: http://127.0.0.1:8080 
 +}
 +
 +// x-accel-redirectを受け取る部分
 +location /download {
 +  internal;   // これを忘れると直接パス指定でダウンロードし放題になるので注意
 +  root /var/www/download;
 +}
 +</code>
 +
 +ダウンロードさせるファイルは ''/var/www/download/'' 以下に設置する
nginx.1315639513.txt.gz · 最終更新: 2011/09/10 07:25 by nullpon