Asp.NET Core Nginx Ocelot ForwardedHeaders X-Forwarded-For
nginx 등 프 록 시 서버 는 리 트 윗 할 때 X - Forward - For 요청 헤 더 를 사용 합 니 다.이 요청 헤드 는 요청 자 ip 에서 프 록 시 서버 ip 까지 의 정 보 를 기록 합 니 다.
https://imququ.com/post/x-forwarded-for-header-in-http.htmlhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For
asp. net core 는 퍼 가기 서버 를 사용 한 후 공식 문 서 는 미들웨어 설정 을 사용 해 야 한다 고 말 했다.rotohttps://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#when-to-use-kestrel-with-a-reverse-proxy
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
app.UseAuthentication();
X - Forward - For 를 사용 하면 HttpContext. Connect 가 업 데 이 트 됩 니 다. RemoteIpAddress 를 사용 하면 X - Forward - Proto 를 사용 하면 HttpContext. Request. Scheme 이 업 데 이 트 됩 니 다. X - Forward - Hust 를 사용 하면 HttpContext. Request. H 가 업 데 이 트 됩 니 다.osthttps://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-2.2
나 는 효 과 를 보기 위해 테스트 웹 api 를 만 들 었 다.
[HttpGet]
public ActionResult> Get()
{
var remoteIp = HttpContext.Connection.RemoteIpAddress;
string ip = remoteIp.MapToIPv4().ToString();
var scheme = HttpContext.Request.Scheme;
string sch = scheme.ToString();
var host = HttpContext.Request.Host;
string ho = host.ToString();
return new string[] { ip,sch,ho };
}
미들웨어 를 사용 할 지 여 부 는 http 와 RemoteIPAddress 의 값 이 정확 한 지 에 영향 을 줄 수 있 습 니 다.
ocelot 리 트 윗 api 를 사용 하면 host 의 정확 한 값 을 읽 을 수 없습니다.ocelot 미들웨어 Forward Headers. XForward For | Forward Headers. XForward Proto 를 추가 하지 않 아 도 올 바른 reoteip 및 scheme 을 얻 을 수 없습니다.
다음으로 전송:https://www.cnblogs.com/wswind/p/11065038.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.