多数の異なるサイトを操作するための1つのNginx構成

Webスタジオ、seoshnikovまたはcybersquattersのニーズに合わせてNginxを構成する必要がある場合は、おそらく、under_coreがserver_nameであることを既に知っているでしょう。 それにもかかわらず、私の例から他のいくつかの有用なトリックを収集することができます。



この構成でサーバー上に新しいサイトを作成するには、サイトの名前でディレクトリを作成し、コンテンツを入力します。 そして、構成ファイルは唯一の変更されないままです。



構成は次のことを行います。

1. URLのこれらの文字に関係なく、サーバーがサイトを含むディレクトリを見つけるように、アドレスから「www」を切り取ります。

2.存在しないサイトをリクエストするときに別のページを提供します。

3.存在しないパスを要求するときに、サイトのルートにあるindex.phpへの標準リダイレクトを作成します。

4. .phpファイルを呼び出すときに、リクエストをphp-fpmにリダイレクトします。

5. .htm(l)ファイルをPHPとして処理する機能を追加します。







サイトのディレクトリは、/ var / www / all /に作成されます。

wwwからwwwなしへのSimlinksは必要ありません。

存在しないサイトを呼び出すと、gagサイトはディレクトリ/ var / www / all / undefinedに配置されます。

あるサイトですべてのhtmlファイルをPHPとして処理する必要がある場合、このサイトのルートに空のファイル.parse_htmlを配置する必要があります。

以下はサイト構成ファイルです。 / etc / nginx / sites_enabled / defaultに配置できます。



おそらく1つの制限があります:ルートのindex.phpのみを書き換えます。 ただし、スパッドする必要があるサイトの99.9%には、このオプションが適しています。



server { listen 80 default; #   -   80  server_name _; #  , ,        set $sathost $host; #  sathost    .        #  www if ( $host ~ ^(www\.)?(.+)$ ) { set $sathost $2; } root /var/www/all/$sathost; #     index index.php index.html index.htm; #       access_log off; # access_log /var/log/nginx/all/$sathost_access.log; #  ,  ,  .    error_log /var/log/nginx/all.error.log error; location / { #       if (!-d /var/www/all/$sathost) { #         #      undefined,    /all/undefined set $sathost undefined; rewrite ^ /index.php last; } #  rewrite set $rflag 1; #        ,       . flag      if (-e $request_filename) { #    ,     set $rflag 0; } if (!-f /var/www/all/$sathost/index.php) { #   index.php   ,     ,   set $rflag 0; } if ($rflag = 1) { # rewrite ^ /index.php last; } #  rewrite if (-f $request_filename) { #        expires 1h; break; } } location ~ \.php$ { #      .php  root /var/www/all/$sathost; fastcgi_pass 127.0.0.1:9000; #   php-fpm fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/all/$sathost/$fastcgi_script_name; include fastcgi_params; break; } location ~ \.htm(l?)$ { #      .html  .htm #       «.parse_html»,   HTML  PHP fastcgi_param SCRIPT_FILENAME /var/www/all/$sathost/$fastcgi_script_name; include fastcgi_params; if (!-f $request_filename) { #    .html,         # ,   ,    rewrite rewrite ^ /index.php last; } if (-f /var/www/all/$sathost/.parse_html) { #     #       ,   html   php fastcgi_pass 127.0.0.1:9000; } break; } location ~ /\.ht { #  ,   «.ht»         -     . deny all; } }
      
      






All Articles