이전글

1. Apache2 설치, 간단한 HTML 사이트 띄우기

https://arca.live/b/programmers/42290333


다시 돌아온 웹서비스 구축이다.

이번에는 내가 만든 서버를 남들이 볼 수 있도록 외부 접근과 도메인을 세팅할거야.


들어가기에 앞서 IP의 종류에 대해 짚고 넘어갈건데,

IP는 크게 사설 IP, 공인 IP로 나뉘어져 있어.

사설 IP는 하나의 라우터(공유기) 안에 있는 기기들을 식별하기 위한 것이고 (예 : 192.168.0.2 등)

공인 IP는 그 라우터 안에 있는 기기들이 인터넷 연결을 할 수 있도록 하나의 주소로 묶여 밖에 나와있는 것이야. (예 : 223.38, 39.7 등)


그럼 밖에서 내 서버로 접속을 시도해볼텐데

공인 IP는 이 명령어로 확인할 수 있어.


$ curl myip.wtf/text


이걸 실행하면 하나의 IP 주소만 달랑 띄우고 실행이 종료되는데, 이 주소가 바로 "공인 IP"라는 것이야.


그럼 이 IP 주소로 접속을 하면 웹사이트가..



안뜰거야.



뎃? 와타시의 세레브한 홈페이지가 어디 간 데스우?


눈썰미가 좀 있다면 무언가를 빼먹었다는 것을 눈치챌 수 있을 거야. 바로 포트포워딩을 안했다는 것이지.

웬만한 공유기에는 포트포워딩이란 기능이 있는데, 밖에서 공유기로 들어오는 연결을 제어하기 위한 수단이라고 할 수 있어.


한 기기의 모든 포트를 열어버리는 DMZ라는 것도 있는데, 제발 쓰지마.


우리는 밖에서 80번, 443번을 쓸 수 있도록 포트를 열어줄 건데, 포트포워딩을 하는 방법은 공유기마다 다르니 검색해보길 바래.


포트포워딩을 설정했다면, 다시 들어가 보자.


잘 작동한다!


하지만 남들한테 거추장스럽고 외우기도 힘든 IP주소로 내 웹사이트를 오라고 할 수는 없으니, 이제 도메인을 세팅해보자.

IP가 20.09.5.23 같은 거라면 도메인은 arca.live 같은 것이라고 이해하면 쉬워.


도메인은 유료 도메인이 기업에 있어서는 기본이지만, 우리는 예제 격으로 웹 서비스를 만드는 것이니

p-e.kr, o-r.kr, n-e.kr, r-e.kr, kro.kr 도메인을 무료로 제공하는 https://내도메인.한국 을 사용할거야.


내도메인.한국에서 적당히 회원가입을 한 뒤, 원하는 주소를 입력하자.

예를 들어 우리는 klee.n-e.kr을 입력할거야.



저렇게 로딩 표시가 나오는 도메인은 자리가 비었단 뜻이니, 등록이 가능해.


그럼 메시지 창 몇개와 함께 이 화면으로 이동돼.


여기서 IP연결(A)를 체크하고, 오른쪽 입력창에 공인 IP 주소를 입력하자.


그 다음 우리가 등록했던 도메인에 접속을 하면



아까의 그 IP 주소를 쓰지 않고도 저 주소로 언제든지 서버에 접근이 가능해질거야.


그런데, 주소창 왼쪽의 거슬리는 "주의 요함"이 보이는가?


홈페이지에 SSL이 적용되지 않았다는 뜻이다.

SSL이 없어도 접속 자체는 되겠지만. 요즘 시대에 SSL 없는 웹 서비스는 웹 서비스라고 말할 수 없지.

이제 Let's Encrypt를 통해 SSL을 세팅할거야.


먼저 내 서버의 주소가 무엇인지를 Apache2 서버 데몬에 알려야 해.

기본 웹페이지의 설정파일을 에디터로 열면,

$ sudo nano /etc/apache2/sites-available/000-default.conf

대충 이런 화면이 나올거야.


대충 ServerAdmin 바로 위에 서버의 도메인 주소를 입력해놓자.


ServerName [도메인 주소]
ServerAlias [도메인 주소]

Ctrl+X → y → 엔터를 눌러 설정파일을 저장하자.


그 다음, 우리가 입력했던 설정값이 올바른지 확인해보자.

$ apache2ctl configtest

Syntax OK라고 뜨면 설정값이 제대로 박혀있다는 뜻이니 서버를 재시작하자.

$ sudo systemctl restart apache2


그럼 이제 실제로 SSL 인증서를 발급받을거야.


$ sudo apt install certbot python3-certbot-apache

먼저 SSL 인증서를 발급받기 위한 필수 애플리케이션을 설치하고,


$ sudo certbot --apache

인증서 발급을 시작하자.

발급 방법은 간단해. 이메일 주소를 입력하고 동의하라는 사항에 동의하면 알아서 다 되는 구조지.


이제 만들었던 도메인 주소로 다시 들어가보자.

보안 연결이 사용되었다고 잘 뜬다.


이렇게 오늘은 도메인과 SSL에 대해서 알아봤어.

이제 다음부터가 진짜 실전인데, 많은 웹 개발자들의 곡소리를 자아내는 PHP와 DB를 설치하고 세팅할거야.