ホームページ  >  記事  >  バックエンド開発  >  nginx ルートとエイリアスの違いについて

nginx ルートとエイリアスの違いについて

不言
不言オリジナル
2018-07-07 15:48:242541ブラウズ

この記事では、nginx に関するルートとエイリアスの違いを主に紹介します。一定の参考値がありますので、共有します。必要な友人は参考にしてください。

結論

構成デモ:

location xxx {
    root yyy
}

ブラウザは xxx にアクセスし、実際のアクセスは yyy/xxx
ブラウザは xxx/abc.html にアクセスし、実際のアクセスは yyy/xxx/abc.html
ブラウザは xxx/ccc/abc.html にアクセスします。実際のアクセスは yyy/xxx/ccc/abc.html

結論: root 属性は root の値 (ここでは yyy) をアクセス パスに追加します ( location)

設定デモ:

locaiton xxx {
    # alias必须以 / 结束,否则无效
    alias yyy/ 
}

ブラウザは xxx にアクセスし、実際のアクセスは yyy
ブラウザは xxx/abc.html にアクセスし、実際のアクセスは yyy/abc です。 html
ブラウザが xxx/ccc/abc.html にアクセスすると、実際のアクセスは yyy/ccc/abc.html

結論: alias 属性は、アクセス パスの一致する部分を置き換えます (ここでは、 yyy) をエイリアスの値に置き換えます (ここでは yyy です) ここでは xxx)

Example

nginx のディレクトリ構造は次のとおりです:

nginx/
    -html/
        -index.html
    -logs/
        - access.log
    -conf/
        -nginx.conf

1) この構成は次のようになります。 http://localhost:8086/access.log で確認できます。nginx/logs/access.log に移動します。ただし、HTML ディレクトリ内のドキュメントにアクセスできるとは期待できません。

server {
    listen       8086;
    server_name  localhost;
    location / {
        root   logs;
    }
}

2) この構成では、 、http://localhost:8086/log/access.log にアクセスすると、nginx/logs/access.log を参照できます。
http://localhost:8086/ にアクセスすると、nginx/html/index を参照できます。 html

server {
    listen       8086;
    server_name  localhost;
    location / {
        root   html;
        index  index.html index.htm;
    }
    # 配置成 location /log/ 或 location /log 都可以
    location /log/ {
        # 不能写成logs, 必须已 / 结束
        alias logs/;
        # 以下配置没用也可以,只是方便你输入 localhost:8086/log/ 后能,看到nginx/logs/目录下的所有文件
        autoindex on;
    }
}

3) この構成では、http://localhost:8086/logs/access.log にアクセスすると、nginx/logs/access.log を確認できます。
http://localhost にアクセスします。 8086/、nginx/html/index.html

server {
    listen       8086;
    server_name  localhost;
    # http://localhost:8086/ 访问的是
    # nginx/html/  (然后会自动显示 index.html 或 index.htm,如果存在这两个文件之一)
    # 啰嗦的注释: nginx/html(html是root的值)/(/是location的值)
    location / {
        root   html;
        index  index.html index.htm;
    }
    # http://localhost:8086/logs/ 访问的是
    # nginx/./logs/
    # .是root的值,logs是location的值
    # 请与第4种错误配置进行比较,深入理解root属性
    location /logs/ {
        # 写成./也可以
        root .;
    }
}

4) 間違った構成

server {
    listen       8086;
    server_name  localhost;
    location / {
        root   html;
        index  index.html index.htm;
    }
    # 这样子配置是错的, 请与第三种配置比较一下
    # 关键点:root属性会把root的值加入到最终路径之前
    # 即: http://localhost:8086/logs/access.log访问的是:
    # nginx/logs/logs/access.log
    # 因为: nginx/logs(root的值)/logs(locaition的值)/access.log,
    location /logs/ {
        root /logs/;
    }
}

抜粋: https://www.cnblogs.com/zhang... この段落:
root属性で指定した値は最終パスに追加されるため、アクセスした場所がルート値/場所値となります。また、アクセスされた URI をパスに追加したくありません。したがって、URI を放棄し、alias で指定された場所に直接アクセスする alias 属性を使用する必要があります

以上がこの記事の全内容です。皆様の学習の一助になれば幸いです。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

XHProf を使用して PHP パフォーマンスのボトルネックを分析する方法 2

以上がnginx ルートとエイリアスの違いについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。