docs: add 51123 ingress port boundary research
This commit is contained in:
parent
625aaee064
commit
09f06055e1
@ -55,6 +55,7 @@
|
||||
- [24서버 로빙 운영 자료 수집](./research/260309_24서버_로빙운영_자료수집.md)
|
||||
- [24서버 실서비스 운영전환 리서치](./research/260309_24서버_실서비스운영전환_리서치.md)
|
||||
- [23서버 워크스페이스 SSOT 구조전환 리서치](./research/260309_23서버_워크스페이스_SSOT_구조전환_리서치.md)
|
||||
- [51123 포트 진입점 프로젝트 경계 리서치](./research/260310_51123_포트_진입점_프로젝트경계_리서치.md)
|
||||
- [51123 구 IP 하드코딩 실행 경로 제거 계획](./plans/260309_51123_구IP하드코딩_실행경로제거_계획.md)
|
||||
- [24서버 실서비스 운영전환 계획](./plans/260309_24서버_실서비스운영전환_계획.md)
|
||||
- [23서버 워크스페이스 SSOT 구조전환 계획](./plans/260309_23서버_워크스페이스_SSOT_구조전환_계획.md)
|
||||
|
||||
89
journey/research/260310_51123_포트_진입점_프로젝트경계_리서치.md
Normal file
89
journey/research/260310_51123_포트_진입점_프로젝트경계_리서치.md
Normal file
@ -0,0 +1,89 @@
|
||||
---
|
||||
tags: [infra, ports, ingress, gateway, project-boundary, research]
|
||||
---
|
||||
|
||||
# 260310 51123 포트 진입점 프로젝트 경계 리서치
|
||||
|
||||
## 상위 원칙
|
||||
- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md)
|
||||
- [Runtime Principles](../../00_Philosophy/01_PRINCIPLES/Runtime_Principles.md)
|
||||
- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md)
|
||||
- 공통 작성 원칙: [0_VALUE Writing Principles](https://github.com/happybell80/0_VALUE/blob/main/02_Governance/writing-principles.md)
|
||||
|
||||
## 관련 문서
|
||||
- [Infra Journey](../README.md)
|
||||
- [23서버 워크스페이스 SSOT 구조전환 리서치](./260309_23서버_워크스페이스_SSOT_구조전환_리서치.md)
|
||||
- [24서버 실서비스 운영전환 리서치](./260309_24서버_실서비스운영전환_리서치.md)
|
||||
- [23 gateway MONITOR_URL 구주소 잔존으로 24 monitor 프록시 실패 복구](../troubleshooting/260310_23gateway_monitor_url_구주소잔존_24monitor프록시실패_복구.md)
|
||||
|
||||
## Facts
|
||||
|
||||
### 1. 51123 공개 진입 포트는 현재 `80`, `443`, `51123`, `3000`, `9000` 축이 보인다
|
||||
- `ss -tlnp` 기준 공개 리슨 포트는 `80`, `443`, `51123`, `3000`, `5432`, `7687`, `8000`, `8100`, `8200`, `8505`, `9000`, `9200`, `9600`이다.
|
||||
- 이 중 외부 웹 진입면은 `80/443`의 nginx다.
|
||||
- `3000`은 Gitea, `9000`은 auth-server, `51123`은 SSH다.
|
||||
- `5432`, `7687`, `8000`, `8100`, `8200`, `8505`, `9200`, `9600`은 운영상 직접 접근 가능한 상태지만, 모두 공용 진입면으로 설계된 것은 아니다.
|
||||
|
||||
### 2. `ro-being.com`의 공용 API 진입은 대부분 `8100` gateway로 모인다
|
||||
- `/api/`는 `localhost:8100`으로 프록시된다.
|
||||
- `/admin/api/`도 `localhost:8100`으로 프록시된다.
|
||||
- `/gateway/`도 `localhost:8100`으로 프록시된다.
|
||||
- 따라서 `ro-being.com` 기준 공용 API 입구의 중심은 현재 `robeing-gateway:8100`이다.
|
||||
|
||||
### 3. `robeing-gateway`는 멀티 프로젝트 공용 게이트웨이가 아니라 사실상 `robeing` 전용 게이트웨이다
|
||||
- 게이트웨이 코드의 핵심 엔드포인트는 `/api/chat`, `/api/stats/{robeing_id}`, `/api/preferences/{path}`, `/slack/events`, `/slack/interactive`, `/api/workspace/*`, `/api/config`, `/api/history`, `/api/auth/logout`, `/api/cache/clear`다.
|
||||
- `/api/chat`은 사용자 workspace 또는 기본 robeing을 조회한 뒤 최종적으로 `robeing`의 `/api/message`로 프록시한다.
|
||||
- `/api/stats/*`, `/api/preferences/*`는 `MONITOR_URL`, 즉 `robeing-monitor` 계열을 본다.
|
||||
- 즉 `8100`은 현재 `robeing 채팅 + robeing-monitor 보조 API + Slack 연동`을 묶는 제어면이다.
|
||||
|
||||
### 4. 다른 서브 프로젝트는 현재 `robeing-gateway`를 공용으로 쓰지 않는다
|
||||
- `goosefarminvesting`는 `/goosefarm/api/ -> localhost:8200/api/`로 nginx가 직접 프록시한다.
|
||||
- `starsandi`는 `ro-being.com` 아래에서 더 이상 내부 프록시를 쓰지 않고 `https://starsandi.com`으로 리다이렉트된다.
|
||||
- `git.ro-being.com`은 `localhost:3000` Gitea로 직접 간다.
|
||||
- `auth.ro-being.com`은 `localhost:9000` auth-server로 직접 간다.
|
||||
|
||||
### 5. `robeing` 경로 안에서도 ingress 기준이 둘로 나뉜다
|
||||
- `ro-being.com/api/*`는 `8100 gateway`를 거친다.
|
||||
- 반면 `ro-being.com/rb8001/*`는 `192.168.0.106:8001`로 직접 프록시된다.
|
||||
- 즉 `robeing` 내부에서도 `채팅/monitor 보조 API는 gateway`, `rb8001 직접 호출은 24 실행면 직결` 구조다.
|
||||
|
||||
### 6. 현재 51123에서 확인되는 프로젝트별 주요 런타임 포트는 아래와 같다
|
||||
- `8000`: `admin-dashboard-backend`
|
||||
- `8100`: `robeing-gateway`
|
||||
- `8200`: `goosefarm-app`
|
||||
- `8505`: `robeing-skill-news`
|
||||
- `9000`: `auth-server`
|
||||
- `9200`, `9600`: `opensearch`
|
||||
- `3010`: `starsandi-web` (127.0.0.1)
|
||||
- `8509`: `starsandi-api-py` (127.0.0.1)
|
||||
|
||||
### 7. 현재 운영 판단에 필요한 핵심 경계는 `프로젝트 수`보다 `진입 방식`이다
|
||||
- `robeing`: `nginx -> gateway(8100) -> 24 robeing/monitor`와 `nginx -> 24 rb8001 직접`이 같이 존재한다.
|
||||
- `goosefarminvesting`: `nginx -> 8200 직접`
|
||||
- `starsandi`: `starsandi.com -> 3010/8509`, `ro-being.com`에서는 리다이렉트만 담당
|
||||
- `gitea/auth`: 각각 독립 서브도메인 direct proxy
|
||||
|
||||
## Interpretation
|
||||
|
||||
### 1. 지금 필요한 문서는 “포트 목록”보다 “진입점-책임-프로젝트 경계표”다
|
||||
- 같은 포트라도 `공용 ingress`, `프로젝트 내부 제어면`, `직접 접근 허용`, `외부 직접 노출 비권장`이 다르다.
|
||||
- 운영 실수는 숫자 자체보다 “이 포트가 누구 책임이고 어떤 경로에서 타야 하는가”가 문서에 안 고정될 때 생긴다.
|
||||
|
||||
### 2. `8100`을 공용 API 게이트웨이처럼 보면 오판이 생긴다
|
||||
- 현재 `8100`은 여러 프로젝트를 묶는 공용 게이트웨이가 아니라 `robeing` 전용 제어면에 가깝다.
|
||||
- 따라서 `goosefarminvesting`, `starsandi`, `gitea`, `auth`까지 한 줄로 같은 등급의 gateway 뒤에 있다고 보면 구조를 잘못 읽게 된다.
|
||||
|
||||
### 3. 포트 정리는 `프로젝트별`, `서버별`, `ingress별` 3축으로 해야 한다
|
||||
- `프로젝트별`: 누가 쓰는가
|
||||
- `서버별`: 51123/51124 중 어디에 있는가
|
||||
- `ingress별`: nginx 경유인지, 서브도메인 direct proxy인지, 내부 전용인지
|
||||
- 이 세 축이 같이 있어야 “직접 포트 접근을 허용해도 되는지”, “gateway를 거쳐야 하는지”가 닫힌다.
|
||||
|
||||
## Unresolved
|
||||
- `8000`, `8100`, `8200`, `8505`, `9000`, `9200`, `9600`의 외부 직접 접근을 계속 허용할지, UFW와 nginx 기준으로 더 줄일지는 이번 문서 범위에서 결정하지 않았다.
|
||||
- `admin-dashboard`의 `/admin/api/ -> 8100` 구조를 계속 유지할지, 프로젝트 경계를 더 선명하게 분리할지는 별도 계획이 필요하다.
|
||||
|
||||
## 상위 원칙/근거 문서 연결
|
||||
- [Infra Project Identity](../../00_Philosophy/00_IDENTITY/Infra_Project_Identity.md)
|
||||
- [Runtime Principles](../../00_Philosophy/01_PRINCIPLES/Runtime_Principles.md)
|
||||
- [Operational Guardrails](../../00_Philosophy/02_GUARDRAILS/Operational_Guardrails.md)
|
||||
Loading…
x
Reference in New Issue
Block a user