nginx での URL 転送

nginx での URL 転送

nginx を初めて使用します。次のような着信リクエストをnginxhttps://www.example.com/elasticsearchに転送したいと思いますhttp://localhost:9200。http タグの nginx 構成に次のように記述しました。

server {
        listen 3333;
        server_name www.example.com/elasticsearch;
        return 301 $scheme://localhost:9200;
        location / {
                allow 'elasticsearch';
                deny all;
        }
}

残念ながら、使用するとnginx -t次のエラーが発生します。

nginx: [emerg] invalid parameter "elasticsearch" in /etc/nginx/nginx.conf:79

答え1

server_nameパラメータにはサーバー名のみが含まれ、サーバー上の URI は含まれません。

次のように書き換えることができます。

server {
    listen 3333;
    server_name www.example.com;
    location /elasticsearch {
        return 301 $scheme://localhost:9200;
    }
}

設定には記載されているが質問には記載されていない他の場所へのアクセスを拒否したい場合は、location上記に加えて次のブロックを使用できます。

location / {
    deny all;
}

関連情報