1. 상황
URL 주소에서 매번 뒤에 :8080을 붙여주어야 하는 번거로움을 덜고자
8080 포트를 80 포트로 연결(redirect)해주려 한다.
* http 요청에서 80포트가 기본이므로, 굳이 :80을 붙이지 않아도 자동으로 연결이 된다.
아래는 터미널로 접속한 ubuntu 서버 상에서, 80 포트를 8080 포트로 redirect해주는 코드이다.
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
2. 문제
위 코드를 실행시키고 브라우저에서 기존의 URL에서 :8080 을 제거하고 접속을 시도했더니 아무런 응답이 없었다.
코드를 실행하기 전과 다름 없는 상황, 즉 80 포트가 8080 포트로 연결되지 않은 것이다.
3. 해결
문제의 원인은 이전에 80 포트를 5000 포트로 연결해놓은 적이 있었기 때문이었다.
아래 결과값에서 가장 위에 있는 5000 포트로 포워딩 시켜놓은 부분 때문에 그 아래에 있는 8080 포트로의 포워딩이 정상적으로 작동될 수 없었다.
// 현재 포워딩 시켜놓은 포트를 확인
sudo iptables -t nat -L
따라서 5000 포트로의 포워딩을 지워야 한다.
5000 포트를 비롯해 8080 포트 하나만 남겨두고 나머지를 모두 삭제하였다.
// 포워딩 삭제
sudo iptables -D PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
다시 현재 포워딩 포트를 확인해봤을 때 8080 포트로의 포워딩 하나만 남았다.
여기까지 실행을 마치고 다시 포트 번호를 붙이지 않은(80 포트) URL로 접속해보았더니 정상적으로 8080 포트에서 작동하던 페이지로 redirect되는 것을 확인할 수 있었다.
'발견' 카테고리의 다른 글
[Docker] 도커 연결 시 Host 포트와 Container 포트 (0) | 2023.06.08 |
---|---|
[오늘의 발견] 원형 자료구조에서의 인덱스 (0) | 2023.06.08 |
@Builder의 선언위치에 따른 차이 (0) | 2023.05.26 |
[Spring] Port 8080 is already in use 에러 해결 방법 (0) | 2022.08.25 |
Spring Security 회원가입 POST 요청 시 500 에러 발생 (0) | 2022.08.21 |