[aspnet core] reverse-proxy 아래 에서 swagger 의 try-it-out 기능이 틀어지는 문제점
View 6,709 | 작성일2021.08.31 17:22
관련링크
본문
전 docker swarm 에 nginx 를 replicas 수 4개 정도로 띄워서 reverse proxy 로 사용하고 있습니다.
1) nginx 설정 , X-Forwarded-Host 에 {Base Path} 를 덧붙입니다.
location ^~ /dev/ {
.........
proxy_set_header X-Forwarded-Host $host/dev;
.........
}
2) code 수정
app.UseSwagger(op =>
{
op.PreSerializeFilters.Add((swagger, http_req) =>
{
if (http_req.Headers.ContainsKey("X-Forwarded-Host"))
{
var server_url = $"{http_req.Scheme}://{http_req.Headers["X-Forwarded-Host"]}";
swagger.Servers = new List<OpenApiServer> {
new OpenApiServer { Url = server_url }
};
}
});
})
.UseDeveloperExceptionPage()
.UseSwaggerUI(c => {
c.SwaggerEndpoint("v2/swagger.json", "Data_Access_WebAPI v1");
});