1) server_name ディレクティブは、主に名前ベースの仮想ホスト (http の ) を構成するために使用されます。 > 内のサーバー)、リクエストを受信した後の server_name 命令の一致順序は次のとおりです:
1. 正確な server_name の一致、例:
サーバー{
80を聞く;
server_namessdr.info www.ssdr.info;
...
}
2.*で始まる文字列: server {
listen 80;
server_name* .ssdr。 info;
...
}
3.*ワイルドカードで終わる文字列: server {
listen 80;
server_name www . $;
...
}
nginxは、servernameの順序で
1,2,3,4と一致し、検索は1つだけ一致すると停止します。2
) server ブロック内のサイトに複数の第 2 レベル ドメイン名を構成します : 実際の Web サイトのディレクトリ構造では、通常、第 2 レベル ドメインを分離しますサイトの名前 ディレクトリを作成します。通常のキャプチャを使用して、server
ブロック内に複数の第 2 レベルのドメイン名を構成することもできます。 +) ?.domain.com$; Index Index.html;。 http://www.domain.com Permanent; } root /data/wwwsite/domain.com/$1/; }
サイトのディレクトリ構造は次のようになります:/ data/wwwsite/domain.com/www//data/wwwsite/domain.com/nginx/このように
www.domain.com
にアクセスすると、
root
ディレクトリは
になります/data/wwwsite/domain.com/www/
、
nginx.domain.com
は
/data/wwwsite/domain.com/nginx/などです。
の後の
if
ステートメントの機能は、
domain.comの方向をwww.domain.comにリダイレクトすることであり、これはホームディレクトリへのアクセスの問題を解決するだけではありません。 seoからwww.domain.comへのドメイン名の重みも増加します。 3) 複数の正規表現:
server_nameで正規表現を使用し、次のlocationフィールドで正規表現を使用する場合、これは機能しませんのような参照の場合$1、$2の場合、解決策は、setコマンドを使用して名前付き変数に代入することです:
server{ listen 80;
server _name ~ ^(.+ )?.howtocn.org$;set $www_root $1; root /data/wwwsite/ssdr.info/$www_root/; location ~ .*.php?$ { fastcgi_pass 127.0 .0.1:9000 ; fastcgi_indexindex.php; fastcgi_param SCRIPT_FILENAME/data/wwwsite/ssdr.info/$fastcgi_script_name; include fastcgi_params; }}
上記は、サーバーと nginx の側面を含む nginx の server_name 構成を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。