2 minute read

라즈베리파이 웹서버 외부포트

수신포트 개요

: 아파치 웹서버의 기본포트는 80 포트이다. 인터넷 공유기에 80이 아닌 다른 포트 번호를 할당해서 포트 포워딩을 시킨다면 웹서버 접속할때마다 URL에다 할당한 포트번호를 따로 지정해 줘야 해서 불편할 수도 있긴하지만.. 보안 등 경우에 따라서는 다른 포트에 할당해서 포트를 명시적으로 지정했을 때만 접속할 수 있게 하는 용도로 사용하기도 한다.

위 처럼 특정 포트는 특정 호스트로 이동할 수 있도록 정의된 것이 가상호스트 이다.

수신포트 변경

수신포트 변경시 흐름

: 9510포트로 들어오려면 라즈베리파이에 띄워진 apache 웹서버에서 수신포트 설정이 9510 으로 설정되어 있어야 한다.

  1. 주소창에 입력하는 80포트로 오는 모든 요청에 대해
  2. 서버내부에서 특정포트(ex: 9510)로 수신하여 받는다.

기본(http) 수신포트(80) 변경

: apache 기본 수신포트를 9510으로 변경한다.

vi /fswas/apache/httpd/httpd-2.4.541/conf/httpd.conf

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 12.34.56.78:80
# Listen 80
Listen [http 원하는포트입력]  # 수신포트를 9510 으로 변경한다.

SSL기본(https) 수신포트(443) 변경 (SSL 사용시 변경하도록 한다.)

: apache 기본 수신포트를 9510으로 변경한다.

/fswas/apache/httpd/httpd-2.4.541/conf httpd.conf 안에 SSL 관련 설정파일(httpd-ssl.conf)이 include 되어있음
vi /fswas/apache/httpd/httpd-2.4.541/conf/extra/httpd-ssl.conf

# Listen 443
Listen [https 원하는포트입력]

http, https 가상호스트 사용시

: apache 기본 수신포트를 9510으로 변경한다.

/fswas/apache/httpd/httpd-2.4.541/conf httpd.conf 안에 가상호스트 관련 설정파일(httpd-vhosts.conf)이 include 되어있음

vi /fswas/apache/httpd/httpd-2.4.541/conf/extra/httpd-vhosts.conf

######################
# CTH
######################
# Server1
<VirtualHost *:80>                     ## [https 원하는포트입력]
    ServerAdmin layup3@naver.com
    DocumentRoot "/fswas/apache/httpd/httpd-2.4.541/htdocs"
    ServerName blang.co.kr
    ServerAlias www.blang.co.kr
    ErrorLog "/fswaslog/apache/dbd/error_log"
    CustomLog "/fswaslog/apache/dbd/error_log" common
</VirtualHost>

적용

: 재시작하고 정상적으로 적용되었는지 결과를 확인한다.

sudo /fswas/apache/httpd/httpd-2.4.541/bin/httpd -k stop  
sudo /fswas/apache/httpd/httpd-2.4.541/bin/httpd -k start

# 확인(1)
ps -ef | grep httpd
root     21207     1  0 23:45 ?        00:00:00 /fswas/apache/httpd/httpd-2.4.541/bin/httpd -k start
daemon   21208 21207  0 23:45 ?        00:00:00 /fswas/apache/httpd/httpd-2.4.541/bin/httpd -k start
daemon   21209 21207  0 23:45 ?        00:00:00 /fswas/apache/httpd/httpd-2.4.541/bin/httpd -k start
daemon   21211 21207  0 23:45 ?        00:00:00 /fswas/apache/httpd/httpd-2.4.541/bin/httpd -k start
root     21298 21296  0 23:45 pts/0    00:00:00 grep httpd

# 확인(2)
sudo netstat -anp | grep httpd
tcp6       0      0 :::443                  :::*                    LISTEN      21207/httpd
tcp6       0      0 :::9510                 :::*                    LISTEN      21207/httpd

아파치 기본포트(80)이 직접 설정한 9510 으로 나오는것을 볼 수있다.

내부포트 포트포워딩

: 나는 공유기에서 포트포워딩을 하는 방법으로 특정 라즈베리파이 서버에 접근하므로 iptime 콘솔에서 포트포워딩 작업을 해줘야한다.

  • iptime 콘솔 설정
    1. 고급설정 - NAT/라우터 관리 - 포트포워드 설정 이동
    2. 규칙이름: 새로만들 규칙의 이름 (영문으로 아무거나 작성)
    3. 내부 IP 주소: 사설IP(192.168.100.XXX)를 제어할 IP주소 //라즈베리파이의 IP가 될것이다.
    4. 프로토콜: TCP / UDP 여러가지 있지만 대부분 TCP를 사용한다
    5. 외부 포트: 외부에서 접속할때 사용하는포트 //기본포트(80) 그대로 놔둔다.
    6. 내부 포트: 내부에서 사용할 포트 //설정한포트(9510) 으로 적어준다.

이제 아파치 기본포트(80)에 들어오면 특정 라즈베리파이의 9510 포트로 접속한다.
그럼 라즈바리페이 내부에서 아파치 웹서버로 수신될것이다.

Leave a comment