본문 바로가기

외부 활동/UMC 2기 서버[NODE]

3주차 - 도메인과 리다이렉션, AWS 서버 환경 구

현실에서의 위도 경도를 도로명 주소로 인간이 알기 쉽게 표현한것 처럼

IT세계에서도 ip를 인간이 알기 쉽게 표현한것을 도메인이다.

 

휴대폰으로 네이버에 접속을 하면 주소가 옆의 사진 처럼 되어있다.

이것이 바로 서브 도메인이다.

서브 도메인은 보조 도메인으로

url을 전송하거나 ip주소 디렉토리로 포워딩되는 도메인 이름의 확장자이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

서브 도메인은 보조 도메인으로

url을 전송하거나 ip주소 디렉토리로 포워딩되는 도메인 이름의 확장자이다.

 

 

 

 

 

 

 

 

ip는 도메인으로 연결이 되서 http는 https로 연결이 된다.==>리다이렉션 처리가 되어있다.

 

 

 

자 이제 ec2 서버 환경 구축 실습을 진행 할 것이다.

그 순서로

1.리눅스에 nginx,php,mysql설치

2.nginx와 php연동

3.도메인 구입하여 적용하기

4.서브 도메인 적용하기

5.리다이렉션 적용하기            이다.

 

 

 

nginx의 기본 경로는 /var/www/html이다.

nginx의 기본 설정 경로는 etc/nginx/sites-availale이다.
거기서 sudo vi default (vi로 default파일을 연다.)
그럼 서버 설정 블록이 나온다.

index는 접속 했을때 처음 나오는 화면파일

,root는 그 경로를 나타낸다.

 

 

 

 

/etc/nginx로 가서

vi로 nginx.conf파일을 열수 있따.

 

nginx의 설정 파일들을 변경 했으면 sudo nginx -t 와 sudo service nginx restart를 해줘야한다. 

 

 

ec2 ip와 연결을 하려면

 

 

 

1. 리눅스에 nginx,php,mysql설치

 

nginx는 apache와 같은 웹 서버이다.

 

nginx설치를 위해 코드 두개를 입력한다

➀ sudo apt update

➁ sudo apt install nginx

이후 설치가 완료된 것을 확인해주기 위해 nginx -v 를 입력하여 버전을 확인한다.

이렇게 nginx버전이 뜨면 설치가 왼료되었음을 알 수 있다.

 

 

  • Mysql 설치

➀ sudo apt install mysql-server을 입력한다

➁ sudo mysql_secure_installation을 입력한다.

https://www.bddungsblog.com/2022/11/ubuntu-mysql-resolving-mysql-password.html

 

[Ubuntu] 우분투 MySQL 비밀번호 설정 오류 해결하기 Resolving Ubuntu MySQL Password Setting Errors

 

www.bddungsblog.com

비밀번호 이슈는 해당 블로그 참조

비밀번호의 경우 가장 보안수준이 낮은 0으로 설정을 진행한다.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : n

여기부분만 외부 접속을 위해서 no 로 답변하고 나머지는 다 yes로 대답하여 설치를 진행한다.

 

sudo mysql -u root -p 을 입력한 뒤, 비밀번호를 입력함으로 mysql에 접속 가능하다.

 

 

 

  • php 설치

sudo apt install php-fpm php-mysql 를 이용하여 php를 설치한다.

이후 php -v를 입력하여 php의 버전을 확인함으로써 설치가 완료되었음을 확인한다.

 

이렇게 3개 모두 설치를 한 후 나의 IP(aws 상에서 할당받은 ip에 들어가보면

 

 

이렇게 기본적인 nginx인덱스 페이지가 뜨는것을 알 수 있다.

 

 

phpinfo화면을 띄우기 위해

2. nginx, php 연동

/var/www/html의 위치에 phpinfo를 만들어준다.

cd /var/www/html

 

phpinfo.php파일을 vi편집기를 이용해서 만들어준다.

 

sudo vi phpinfo.php 라는 커맨드를 입력하여 

 

 

이렇게 쳐준다.

이후 esc키를 누르고 :wq를 입력하여 저장하고 나온다.

 

다음 /etc/nginx/sites-available 로 들어가서  //   cd /etc/nginx/sites-available

sudo vi default 를 입력한다.

 

오른쪽 아래에 코드의 라인 넘버가 나온다.

56번 

63번의

57줄

60번 줄에서는 php를 설치한 버전에 맞게 수정 후 주석(#)들을 삭제한다.

 

cd /etc/nginx 입력 후

sudo vi nginx.conf 를 입력하여 nginx.conf 파일을 연다.

 

24번줄 주석 해제

 

 

 

nginx의 설정 파일을 변경하면 반드시 테스트를 진행해주어야 한다. 테스트는 바로 밑에 첨부한 파일과 같이

sudo nginx -t 를 사용하여 테스트를 진행하고 success라는 문구가 나오면 성공이다.

 

성공하면 다음과 같이 sudo service nginx restart를 이용하여 restart를 진행한다.

이후 나의 IP의 phpinfo 주소인 http://13.209.118.217/phpinfo.php에 들어가보면

다음과 같은 이쁜  홈페이지가 나타난다.

3.도메인 구입하여 적용하기

가비아 사이트에 접속한뒤 내가 원하는 도메인을 구매한다.

www.moca9012.shop   이라는 도메인을 500원에 구임(.com같은 것은 비싸고 .shop처럼 값싼걸로 구매)

 

이후 my 페이지에서 DNS관리툴로 들어가고 해당 도메인의 설정을 클릭하여 

레코드 수정을 한다.

 

 

첫번 쨰 줄의 @은 www를 따로 입력 하지 않아도 바로 연결된 ip로 보내준다.

 

예로 들어 naver.com를 해도 네이버의 ip가 연결이 되서 네이버의 페이지가 나오게 된다.

 

서버 도메인으로

dev개발 서버와 prod실제 배포 서버로 만들었다.

타입은 CNAME으로 하고 값/위치에는 도메인의 이름을 적고 그뒤에 꼭 . 을 붙여준다.

 

도메인과 IP를 연결하기 위해서는 서버 설정 파일에서 서버 이름을 추가해주어야 한다.

다시 /etc/nginx/sites-available에 위치한 nginx 설정 파일로 들어간다.

sudo vi default

 

46번째 서버네임 라인에서 해당 도메인을 적어준다.

이전에 했던 것과 마찬가지로 test하고 restart를 진행해준다

 

 

그럼 이제 도메인으로도 접속이 가능해진다.

 

4.서브 도메인 적용하기

 

이제 서브 도메인을 연결하여 각각 다른 페이지를 띄워보려한다.

다른 페이지를 띄우기 위해 nginx의 기본 폴더(/var/www/html)에 dev와 prod 폴더를 만든다.

 

sudo mkdir dev

sudo mkdir prod

 

dev에는 최영철이 만듬 ㅎㅇ

 

먼저 dev로 이동해서 index.html를 만들어 주자.

 

 

          

자 이제 띄울 페이지를 만들었으니 서버 블록을 만들고 이를 연결해주면 끝이다.

nginx의 기본 설정 파일로 가 기본 서버 블록을 만들어 준다.

 

server {
        listen 80;
        listen [::]:80;

        root /var/www/html/dev;
        index index.html;

        server_name dev.moca9012.shop;

        location / {
                try_files $uri $uri/ =404;
        }
}

 

 

nginx 설정을 완료했으니 테스트를 거치고 restart 해준다.

이제 각각의 sub domain을 포함하여 입력하여 각각의 IP로 이동을 해보자 

성공적으로 잘 나온다.

 

5.리다이렉션 적용하기  

 

ip로 접속했을 때 도메인으로 들어가게 해보자

 

redirection 또한 server block을 하나 추가해주면 끝나는 문제이다.

 

nginx의 기본 설정 파일(/etc/nginx/sites-available)로 들어가서 다음과 같은 server block을 새로 만든다.

 

다시 테스트 후 리스타트한다.

 

 

러고 IP주소를 입력하여 접속해도 자동적으로 Domain name으로 바뀌는 것을 알 수 있다.

 

 

 

 

 

 

 

챌린지 과제 HTTPS 도메 인 적용하기

추천 검색 키워드 :ec ubuntu 18.04 Let's Encrypt

참고글: https://hoyeong-rithm.tistory.com/53

 

https적용 이전에 우선 aws ec2에서 자신의 인스턴스 보안 그룹의 인바운드 규칙에 https을 추가해주어야한다.

하지만 난 이미 해놓아서 따로 다시 들어가지 않아도 된다.

 

$ sudo apt update

$ sudo apt-get install software-properties-common

$ sudo add-apt-repository ppa:certbot/certbot

$ sudo apt install python3-certbot-nginx

 

Certbot을 설치해주고 Certbot Nginx 패키지도 설치해 준다. 

python3로 해도 되고 python으로 해도 된다.

 

이후 sudo vi /etc/nginx/sites-available/default

로 들어가서 서버 네임을 추가 해야하지만 이미 http실습 과정에서 진행을 하여서 패쓰

이후 다시 nginx -t로 테스트를 하고 successful이 뜨면 

sudo systemctl reload nginx 로 nginx를 리로드 해준다.

 

SSL 인증서 받기

 sudo certbot --nginx -d www.moca9012.shop -d dev.moca9012.shop

-d 뒤에 HTTPS를 적용할 도메인을 적어주면 된다.

나는 www.moca9012.shop  과 dev.moca9012.shop 를 설정했다.

 

도메인을 입력하면 이메일과 알림 설정이 나오는데 이메일을 작성하고 A를 눌러줍니다.
그리고 두 가지 선택 사항이 나오는데 우리는 HTTP를 HTTPS로 리다이렉트할 것이기 때문에 2를 눌러준다.

이후에 이메일을 공유할래 하고 물어보지만 난 N를 택했다.

 

우리가 작성한 도메인이 맞는지 확인하고 Congratulation이 나왔다면 성공이다.

 

$ sudo certbot renew --dry-run

$ sudo service nginx restart

마지막으로 자동 갱신 확인을 위해 위와 같은 코드를 작성하고 별다른 오류가 없다면 nginx 재시작해준다.

 

 

 

 

이제 잘 뜨는 것을 확인 할 수 있다. 야미쓰