프런트엔드 및 백엔드에서 고정 IP를 사용하는 이유와 방법
Originally published on my Medium blog »
한 베타 고객이 Angular 웹 애플리케이션에 로그인할 수 없어서 우리에게 접근한 적이 있습니다. 페이지가 로드 중이었지만 API에 대한 HTTP 요청이 실패했습니다. 고객과 이야기를 나눈 후 회사에서 IP 제한을 사용하고 있음을 알게 되었습니다. 따라서 그는 회사에서 우리 애플리케이션을 사용할 수 있도록 추가할 수 있는 정적 IP를 제공할 수 있는지 알고 싶어했습니다.
불행하게도 우리가 선택한 클라우드 플랫폼( Render )은 그 시점에서 아직 이 기능을 직접 지원하지 않았습니다. 따라서 절대 변경되지 않는 명확한 IP 목록을 제공할 수 없습니다. 그래서 고정 IP를 제공할 수 있는 제품을 찾아야 했습니다. 클라우드 플랫폼을 변경하는 것은 현재까지도 매우 만족스럽기 때문에 불가능했습니다. 이것이 이것을 요청한 첫 번째 고객이었기 때문에 우리도 지금 당장 이것에 많은 돈을 쓰고 싶지 않았습니다.
운 좋게도 지금 필요한 모든 것을 제공하는 솔루션을 우연히 발견했습니다. QuotaGuard는 "분산 네트워크 및 클라우드 기반 애플리케이션을 위한 세계 최고의 고정 IP 솔루션 제공업체"라고 자칭하는 서비스입니다. 그들은 우리가 사용하는 것을 포함하여 여러 클라우드 플랫폼을 지원하며 가격은 제 생각에 공정합니다.
우리의 경우 고정 IP에서 애플리케이션에 액세스할 수 있는 인바운드 프록시만 필요했습니다. 정적 IP를 통해 애플리케이션에서 외부 서비스로 트래픽을 라우팅하려는 경우 아웃바운드가 필요합니다.
계정 등록을 제외하고 다음 단계는 다소 일반적이므로 다른 솔루션으로도 작동해야 합니다.
QuotaGuard Static과 함께 정적 IP를 사용하기 위해 인바운드 프록시를 생성하는 방법
인바운드 프록시를 생성한 후 고정 IP와 도메인 URL을 확인합니다. 관심 있는 고객에게 여기에서 볼 수 있는 고정 IP를 제공해야 합니다.
우리의 경우 Angular 웹 애플리케이션은 인증을 위해 JWT을 사용합니다. 인바운드 프록시의 새 도메인 URL을 포함하는 whitelistedDomains에 주의하십시오.
// called on every request to retrieve the token
export function jwtOptionsFactory(tokenService: MyTokenService) {
return {
tokenGetter: () => tokenService.getToken(),
whitelistedDomains: ['some-api.com', 'some-api.gestatica.com']
};
}
// the actual module imports (simplified)
@NgModule({
...,
imports: [JwtModule.forRoot({
jwtOptionsProvider: {
provide: JWT_OPTIONS,
useFactory: jwtOptionsFactory,
deps: [MyTokenService]
}
}),
...
}
남은 일은 HTTP 요청에 올바른 URL을 사용하는 것입니다. 우리의 경우에는 이에 대한 기능 플래그를 만들었습니다. 따라서 이 기능이 필요한 고객만 인바운드 프록시를 사용하고 나머지는 평소와 같이 API를 직접 사용합니다. 그러나 사용자가 로그인할 때까지 이 정보를 알 수 없으므로 로그인 요청에 항상 프록시를 사용합니다.
getApiUrl(route: string, useStaticIps: boolean): string {
if (!environment.production) {
return 'https://some-api.com';
} else {
return useStaticIps || route.includes('authentication/login') ?
'https://some-api.gestatica.com' :
'https://some-api.com';
}
}
결론
QuotaGuard를 정적 IP용 솔루션으로 사용하는 방법에 대한 이 짧은 게시물을 읽어 주셔서 감사합니다. 보시다시피 설정은 몇 분 안에 완료되며 모든 사용자가 애플리케이션에 다시 액세스할 수 있습니다. 제품에서 고정 IP를 어떻게 사용합니까? 댓글로 알려주세요.
Reference
이 문제에 관하여(프런트엔드 및 백엔드에서 고정 IP를 사용하는 이유와 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/alidev/why-and-how-to-use-static-ips-in-frontend-backend-4cei텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)