본문 바로가기
개발(코딩) 경험 저장소/서버,유틸 설치 및 관리

[공유기][nginx] 공유기내부 에서 nginx 설정 시 server_name

by 주니우스 2024. 11. 24.
반응형

nginx 에서 사용하는 웹 설정을 변경하기위한 내용인데

하다보니 공유기, DNS서버 와 관련이 있어서 내용을 남겨본다.

설명이 길고 글로 이해하기 어려우면 맨 아래 결련만 보길.

 

우선 회사 내부 환경의 서버이고 공유기가 있으며 내부IP로 192.168.0.X 를 사용하고 있고

지금 설정하는 서버의 IP는 192.168.0.240 이라고 가정한다.

 

기존에 예를 들어 example.usg.kr 이라는 도메인을 회사내 내부 서버로 해서 웹을 서비스했다.

 

그렇다면 DNS서버에는 저런식으로 설정이 되어있고 IP주소 118.131.xxx.xxx 는 공유기의 리얼IP(외부IP) 다.

당연히 공유기에서  외부 80 포트 -> 내부 192.168.0.240 IP의 80 포트로 포트포워딩 해놨다.

그러다 80 포트를 다른용도르 쓸일이 생겨서 이걸 다른 포트로 변경 해야하는데 변경해보니 잘 안되더라.

필요한데... 안되면.... 스트레스...!!!! 하지만 거의 대부분 나의 무지로 인한거라 ㅋㅋㅋ

 

여러 방법을 테스트 해보고 확인해본 결과로 이야기 하면

A레코드에 IP주소로 연결해서 사용할땐 nginx의 config 에 

    listen 80;
    server_name example.usg.kr;

이렇게 쓰면 된다.

근데 이렇게 되면 기본 포트인 80포트이다. example.usg.kr 로 접근을 하면 공유기에서 80포트로 포트포워딩 된 IP로 보내게 된다.

위에서 내가 하고 자 했던건 80포트를 다른 서비스를 위해 써야 하니 example.usg.kr:44480  이런식으로 44480 포트를 쓰고 싶었다.

공유기에 44480 포트를 192.168.0.240 IP의 80 포트로 포트포워딩 해놓고

브라우저에 example.usg.kr:44480 이렇게 포트번호까지 그대로 쳐주면 되긴 하는데 난 포트번호까지 치기가 싫은거다.

DNS서버 A레코드에는 포트번호가 들어갈수 없다. IP주소만 들어갈수 있다.

그래서 아래와 같이 웹포워딩을 설정한다.

이렇게 하면 브라우저에서 test.example.usg.kr 을 입력하면 example.usg.kr:44480 이걸로 대체 되어 되고

nginx의 config 파일에 

    listen 80;
    server_name test.example.usg.kr;

이처럼 설정하면 될줄 알았지만 안되었다. 

난 브라우저에 test.example.usg.kr 를 입력한다고 생각해서 이런 설정을 했지만

여러 방면으로 테스트를 해보다 보니 아래와 같이 했어야 했다

    listen 80;
    server_name example.usg.kr;

 

또다른 방식의 설정으로는 공유기의 IP를 넣어주는것이다.

이럴때는 nginx의 config 파일에 아래처럼 설정하면 된다.

    listen 80;
    server_name 118.131.xxx.xxx;

 

 

이 글을 알아들을수 있을지 모르겠다... 몇년 지나면 나도 못알아 들을것 같은데... ㅋ

별거 아닌데 설명을 하다보니 난독증으로 잘 와닿지 않을수 있는데 결론을 말하면

 

[결론]

  1. 포트번호는 공유기와 서버를 매핑해주기 위한거라 nginx 설정에는 상관없다.

  2. 웹포워딩한 도메인은 자신만 알지 공유기나 서버입장에서는 모르는 도메인이다.(연결할 도메인 으로 들어오기때문) 

      DNS 웹포워딩으로 설정할때는 내가 브라우저에 입력하는 URL이 아닌 공유기 입장에서 어떤 URL로 들어오나 확인

  3. 도메인으로 들어오면 도메인으로 server_name  세팅

      example.usg.kr:44480  -->  server_name example.usg.kr;

  4. IP주소로 들어오면 IP로 server_name  세팅

      118.131.xxx.xxx:44480 --> server_name 118.131.xxx.xxx;

 

 

반응형

댓글