Yarp прокси не логирует редирект?

В настоящее время я играю с YARP (еще один обратный прокси-сервер). И, похоже, мне удалось «замкнуть» перенаправление?

одно из перенаправлений регистрируется, а другое не регистрируется, хотя они были настроены одинаково?

программа.cs

      var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddReverseProxy().LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));

var app = builder.Build();

app.MapReverseProxy();

app.UseHttpsRedirection();

app.UseAuthorization();

app.MapControllers();

app.Run();

appsetting.json

      {
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ReverseProxy": {
    "Routes": {
      "serverforce": {
        "ClusterId": "serverforce",
        "Match": {
          "Path": "google"
        }
      },
      "azure": {
        "ClusterId": "azure",
        "Match": {
          "Path": "msn"
        }
      }
    },
    "Clusters": {
      "serverforce": {
        "Destinations": {
          "google": {
            "Address": "https://google.de/"
          }
        }
      },
      "azure": {
        "Destinations": {
          "msn": {
            "Address": "https://www.msn.com/da-dk"
          }
        }
      }
    }
  }
}

https://localhost:7147/msn перенаправляет меня на https://www.msn.com/da-dk с сообщением журнала

      info: Yarp.ReverseProxy.Forwarder.HttpForwarder[9]
      Proxying to https://www.msn.com/da-dk/msn HTTP/2 RequestVersionOrLower no-streaming

https://localhost:7147/google перенаправляет меня на https://www.google.dk без сообщения в журнале

почему O не получает никаких сообщений журнала? а почему старый сайт, а не последний сайт? Я пытался перестроить и очистить перестроить проект несколько раз?

1 ответ

Чтобы ответить на ваш вопрос. Я проверил вашу конфигурацию, и все регистрируется правильно. Это мой файл проекта

       <Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Yarp.ReverseProxy" Version="1.0.0" />
  </ItemGroup>

</Project>

Журналы:

Попробуй удалить папки bin и obj


Использование обратного прокси для перенаправления некорректно. Обратные прокси-серверы используются для сокрытия существования и характеристик исходных серверов ( https://en.wikipedia.org/wiki/Reverse_proxy )

Вы видите, что исходные серверы перенаправляют вас на другой URL-адрес. Например, вы запрашиваете https://www.msn.com/da-dk/msn , а msn перенаправляет на https://www.msn.com/da-dk?r=1.

Попробуйте этот пример и посмотрите, что произойдет:

        "ReverseProxy": {
    "Routes": {
      "bbc": {
        "ClusterId": "bbc",
        "Match": {
          "Path": "news"
        }
      }
    },
    "Clusters": {
      "bbc": {
        "Destinations": {
          "msn": {
            "Address": "https://www.bbc.com/"
          }
        }
      }
    }
  }
Другие вопросы по тегам