3

私はより大きなWebベースのプロジェクトに取り組んでいます。おそらく、後の段階(またはそれ以上)で1分あたり数百のリクエストを処理する必要があります。

私はNGINXを使ったことがありませんが、Apacheとの比較を読むと、おそらくNGINXルートに行くべきだと思われます。それについて読んで、私はいつも「.htaccess」ファイルが怠惰な解決策であることを理解しています。今、私は.htaccessファイルに依存することを避けたいのですが、私の質問はどのようにですか?

つまり、.htaccessが怠惰でハッキーなソリューションと見なされる場合、この問題のクリーンなソリューションは正確には何ですか。

  • すべての特定のURL(CSS /画像などを除く)を単一のphpファイルにリダイレクトします(ちなみに、index.phpのような単一のファイルがURLを処理し、必要なテンプレートが含まれている場合、パフォーマンスに影響しますか?それを避けて、数十のファイルに分割する必要がありますか?)

  • CSSファイル内のPHPタグの読み取り( "AddHandler application / x-httpd-php .css ...")

  • ログインの別のレイヤー(.htaccess認証、その小さなポップアップウィンドウ付き)

これは基本的に私が.htaccessを使用している3つのことです。特に最初のものは、基本的にアプリケーション全体を完全に機能させます。

しかし、このプロジェクトでは、私は本当にクリーンで最新のソリューションを維持しようとしています。私の可能性は何ですか?どこでパフォーマンスを向上させることができますか?そして、NGINXで開発するために、.htaccessを使用せずに、上記の3つの問題をどのように解決できますか?

お手数をおかけしますが、よろしくお願いいたします。

4

2 に答える 2

4

nginxを最大限に活用するには、nginxが(Apacheのような)Webサーバーではなく、プロキシであることを理解する必要があります。簡単に言うと、リクエストのパターンマッチングに基づいて、他のアプリケーションにデータを渡すための巨大なルールエンジンのように機能します。

したがって、nginxでPHPを実行するには、PHPを実行するのサーバー(またはプロセス)が必要です。これはApacheの場合もありますが、PHPにはFastCGI Process Manager(FPM)が含まれています。

これがあなたを動かすための基本的な定型文です:

server {
   listen 80;
   server_name www.example.com example.com;
   access_log /var/www/www.example.com/logs/access.log;
   error_log /var/www/www.example.com/logs/error.log;
   root /var/www/www.example.com/public_html;

   location / {
       index  index.html index.htm index.php;
       auth_basic            "Username Required";
       auth_basic_user_file  /etc/nginx/htpasswd;
   }

   location ~ (\.php|\.css)$ {
       try_files $uri =404;

       include /etc/nginx/fastcgi_params;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_pass php;
   } 
}
于 2012-06-16T06:37:11.150 に答える
0

質問はトピックから外れていますが、あなたを助けるために:

于 2012-06-16T06:29:16.133 に答える