장고 - EC2에 웹 서버 설정
- 웹서버 프로그램은 대표적으로 Apache와 Nginx가 있다.
- 장고 웹 서비스를 구축할 때는 Nginx를 더 많이 사용하는 추세이다.
EC2 웹 서버 설정 방법
- EC2에 SSH로 접속
1
$ ssh -i ~/.ssh/[키 페어 파일 이름; django-wps.pem] ubuntu@[퍼블릭 DNS 또는 IP]
패키지 최신 업데이트
1
$ sudo apt-get update
Nginx 설치
1
$ sudo apt-get install nginx
서버 잘 동작하고 있는지 상태 확인
1
$ systemctl status nginx
EC2 인스턴스 주소로 접속하여 웹 서버 잘 동작하는지 확인
- 웹브라우저에 퍼블릭 DNS 주소 혹은 IP 주소 입력
- Welcome to nginx! 라는 문구 표시되면 정상 동작중인 상태
Nginx 사용하면 스태틱 웹 서버 생성하여 사용 가능
- Nginx 사용할 때는 한 서버 컴퓨터에서 여러 사이트를 운영할 수 있다.
사이트 별 설정파일 생성하여 수정필요
1
2$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/staticweb
$ sudo vim /etc/nginx/sites-available/staticweb1
2
3
4
5
6
7
8
9
10
11server {
listen 80;
listen [::]:80;
root /var/www/staticweb
index index.html index.htm index.nginx-debian.html;
server_name [퍼블릭 DNS 주소 혹은 IP 입력]
location / {
try_files $uri $uri/ =404;
}
}
설정 파일이 올바른지 확인(문법적인 오류인지, 이 옵션이 정상 작동되는건지 확인)
1
$ sudo nginx -t
해당 설정파일을 Nginx에 활성화
1
sudo ln -s /etc/nginx/sites-available/staticweb /etc/nginx/sites-enabled/
/var/www 경로로 이동하여 staticweb 폴더 생성
1
$ sudo mkdir /var/www/staticweb
브라우저 화면에 표시될 내용 작성
1
$ sudo vim /var/www/staticweb/index.html
1
2
3
4
5<html>
<body>
hello nginx!
</body>
</html>Nginx 재실행
1
$ sudo systemctl restart nginx
- 설치를 마치면, EC2 인스턴스 재시작해도 자동으로 Nginx가 실행되게 등록되어 있다.(아래 명령어 참고)
- $ sudo systemctl stop nginx
- $ sudo systemctl start nginx
- $ sudo systemctl restart nginx
- $ sudo systemctl status nginx
- 설치를 마치면, EC2 인스턴스 재시작해도 자동으로 Nginx가 실행되게 등록되어 있다.(아래 명령어 참고)
웹 브라우저에 퍼블릭 DNS 혹은 IP 주소 입력
- index.html 에 작성한 내용이 정상적으로 표시되는지 확인
고정 IP 설정
- EC2 > 네트워크 및 보안
- 탄력적 IP 선택
- 새 주소 할당 (새 주소 할당받고 인스턴스 선택안하면 과금될 수 있다.)
- 목록에 있는 IP 우측 클릭
- 주소 연결 > 인스턴스 선택 > 연결
- IP 목록에서 Name 입력
- IP 목록에 인스턴스 설정 확인
- EC2 인스턴스 정보에서 탄력적 IP 표시는지 확인
Route 53 이용하여 도메인 연결
- 도메인 레코드 생성
- 레코드 이름 설정 ex) staticweb.sample.wpsshool.site
- 탄력적 IP 입력
- 생성
도메인 이름 변경되었으므로, 사이트 설정파일 수정
1
$ sudo vim /etc/nginx/sites-available/staticweb
1
2...
server_name [고정 IP 설정한 도메인 이름 입력]Nginx 재실행
1
$ sudo systemctl restart nginx
웹 브라우저에 도메인 주소 입력하여 정상 작동하는지 확인
- 도메인 연결 잘 되었는지 확인
- https://www.site24x7.com/ping-test.html 접속
- 도메인 주소 입력
- 연결 상태 확인
- 도메인 연결 잘 되었는지 확인
주의 사항
- 설정 파일 수정했다면 테스트해야 하고, 설정파일이 올바르다면 nginx 재실행해야 설정 파일 반영된다.
- 웹서버 구동시킬 때는 필요한 최소한의 권한만 부여한 계정을 생성하여 해당 계정의 권한으로 구동한다.
- 도메인 설정 필요가 있어서 고정 IP를 설정한다.(도메인 설정 필요가 없을 경우, 고정 IP 설정 불필요)
- 도메인 elastic ID 사용은 무료이나, 발급받고 아무 행위도 하지 않으면 과금될 수 있다.
- 새 주소 할당받고 인스턴스 선택안하면 과금될 수 있다.
Posted