0
これらの2つのnginxディレクティブの違いは何ですか?次のコードブロック内nginx:ロケーションチルド正規表現とパス
location ^~ /sub-directory
location /sub-directory
すなわち差を行う場合、リダイレクトするproxy_pass
を使用します。
これらの2つのnginxディレクティブの違いは何ですか?次のコードブロック内nginx:ロケーションチルド正規表現とパス
location ^~ /sub-directory
location /sub-directory
すなわち差を行う場合、リダイレクトするproxy_pass
を使用します。
は、私はあなたが私はによりことはできません見ることができるように今、カール文以下
$ curl http://192.168.33.100/sub-director/abc
~* /sub.*
$ curl http://192.168.33.100/sub-director/
~* /sub.*
$ curl http://192.168.33.100/sub-director
~* /sub.*
$ curl http://192.168.33.100/sub-directory
^~ /sub-directory
$ curl http://192.168.33.100/sub-directory/
^~ /sub-directory
$ curl http://192.168.33.100/sub-directory/abc
^~ /sub-directory
を検討ドッキングウィンドウコンテナ
sudo docker run -p 80:80 -v $PWD/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf openresty/openresty
を使用して、上記走っ以下のnginxの設定
worker_processes 1;
events {
worker_connections 1024;
}
server {
listen 80;
server_name _;
location ^~ /sub-directory {
echo "^~ /sub-directory";
}
location /sub-director
{
echo "/sub-director";
}
location ~* /sub-* {
echo "~* /sub-*";
}
}
を考えてみましょういずれにしても下の場所ブロックに到達する
location /sub-director
{
echo "/sub-director";
}
正規表現がこのブロックをオーバーライドするためです。しかし、私はまだ到達することができます
location ^~ /sub-directory {
echo "^~ /sub-directory";
}
だから違いはあります。 ^~
を使用し、位置が一致すると、正規表現のベース位置はまったく評価されません。
http://nginx.org/r/他の場所に依存する場所 –