라즈베리파이로 집에서 서버 구축하기 3. nginx 설치. 포트포워딩

2018. 12. 15. 21:11Programming

1. nginx 설치

예전엔 LAMP란 말이 유명했습니다. Linux + Apache + MySQL + Php를 이렇게 불렀는데, 지금은 이 조합도 많이 변한 것 같습니다. 웹 서버에서는 Apache가 진리인 것처럼 사용되곤 했었는데, 요즘엔 nginx를 쓰는 곳도 많아서 사실상 양강 구도입니다. 저도 aws에서는 nginx를 써서 웹 서버를 돌렸습니다.

사실 apache를 제대로 써본 적도 없으니 이렇게 다 아는 듯이 설명하는 것도 웃기네요. nginx도 아직 매뉴얼도 안 읽어본 상태입니다.

각설하고, 라즈비안에서 nginx를 설치해보겠습니다.

$ sudo apt-get update
$ sudo apt-get install nginx

이 두 명령어면 해결됩니다. 시연영상에서는 재설치라서 물어보진 않았지만 원래 최초 설치에는 정말 설치를 진행하겠냐고 물어봅니다. Y를 입력하면 설치됩니다. 혹은 sudo apt-get install -y nginx를 실행하면 묻는 과정 없이 바로 설치가 이루어집니다.

설치가 완료되었으면 다음 명령어로 실행해 주시면 됩니다.

$ sudo service nginx start

실행까지 완료되었으니 이제 직접 접속해서 확인할 차례입니다.

ifconfig를 실행하면 제일 위에 자기 자신에 대한 정보가 나옵니다. 현재 할당받은 ip가 192.168.123.115가 나오니, 브라우저 상에 해당 주소를 입력하면 다음과 같은 페이지를 볼 수 있습니다.

이런 페이지가 나오면 정상적으로 작동한 것입니다. 앞으로 웹 서버에 파일을 추가하고 싶으면 /var/www/html/ 폴더로 들어가 원래 있는 index.nginx-debian.html 파일을 삭제하고 index.html을 만들어주면 됩니다. 사실 안 지우고 index.html만 만들어도 우선순위상 index.html이 앞서므로 상관 없긴 합니다.

2. 포트포워딩 하기

포트포워딩에 관한 설명은 너무 길어서 생략하고 절차만 설명하겠습니다.

제 본가는 현재 LG 유플러스 광랜을 쓰고 있는 중인데, 이게 참 골치 아프게도 특정 지역에선 상용 포트를 막아놓아서 지역에 따라 웹(80)이나 FTP(21) 등의 포트를 쓸 수 없을 수도 있습니다. 이럴 경우엔 8080이나 3000같은 전혀 다른 포트로 서비스를 하는 수밖에 없습니다. 제가 알기론 이런 문제가 발생하는 건 유플러스 뿐입니다. 웃긴건 서울 자취방에서 서버를 돌릴 땐 80번 포트가 막혀있더니, 본가에서 돌릴 땐 너무 잘 돌아가서 어이가 없었습니다.

먼저 라즈베리파이를 포트포워딩 시키기 전에, DHCP를 통한 동적 할당이 아닌 고정된 사설ip를 쓰도록 해야합니다.

윈도우에선 cmd에서 ipconfig를 입력해서, 리눅스나 라즈비안에서는 ip route 명령어를 통해서 게이트웨이를 확인하도록 합시다.

제 게이트 웨이는 192.168.123.254에 있다고 합니다. 웹에서 이 주소를 입력하면 공유기 관리 페이지에 접근할 수 있습니다.

공유기마다 차이는 있습니다만, 보통 최초의 패스워드는 admin입니다. 어떤 것은 공유기 하단에 초기비밀번호가 적혀있는 경우도 있으니 여차저차 잘 들어가도록 합시다.

이제부터는 유플러스의 공유기 NAPD-5000에 맞춰 설명하도록 하겠습니다. 그러나 대부분의 공유기가 지원하는 기능은 비슷하므로 아마 관련된 메뉴는 금방 찾으실 겁니다.

NAPD-5000에서 DHCP 고정 할당을 하려면 기본 설정 > LAN 설정에 들어가면 됩니다.

하드웨어 주소 부분에 원하는 기기의 MAC 어드레스를 적고, 그 아래엔 어떤 ip로 고정하고 싶은지를 적으면 됩니다. 저는 192.168.123.100에 고정하기로 했습니다.

1번에서 실행한 ifconfig를 보면 eth0에 ip 뿐만 아니라 mac 어드레스도 나타나 있습니다. ether라고 시작되는 부분인데요, 이 mac 어드레스를 하드웨어 주소에 복붙해서 적용해주시면 됩니다. 이후 라즈베리파이를 재부팅해주면 의도한 ip가 할당되었음을 확인할 수 있습니다.

이제 라즈베리파이가 192.168.123.100에 고정되었단 걸 확인했으니 포트포워딩을 해주면 됩니다.

주요 포트들은 전부 연결해줍니다. 웹 80, SSL 443, SSH 22만 연결해도 충분합니다.

실제로 포트가 개방되었고, 서버가 잘 돌아가는지 확인해보고 싶으면 yougetsignal에서도 확인해볼 수 있습니다.

이것으로 라즈베리파이의 포트포워딩도 끝났습니다. 지금부터 공인 ip를 통해 외부에서도 라즈베리파이에 접근이 가능합니다.

p.s LG 공유기 사용자일 경우엔, 내부 네트워크에서 공인 ip를 입력하면 접속이 거부가 됩니다. 내부 네트워크에선 무조건 사설 ip로만 접속하셔야 하고, 공인 ip 접속을 테스트하시려면 네트워크 바깥에서 접속하셔야 합니다. 예를 들면 LTE 같은 것들요.