p36~
교재 ec2 인스턴스 작성 - 2에서 nginx와 phusion passenger 설치완료
sudo vi /opt/nginx/conf/nginx.conf
➡️ nginx의 설정 파일을 수정
18 server_names_hash_bucket_size 128;
41 server_name 13.125.84.244;
43 root /var/www/aws/exercise-a/public;
45 passenger_enabled on;
46 passenger_app_type node;
47 passenger_startup_file /var/www/aws-exercise-a/app.js;
53~56 주석
esc -> :wq
- 18
- http 블럭 첫 줄에 추가
- 긴 이름의 서버 이름을 허용하기 위한 설정
- 41
- server_name localhost → EC2 인스턴스 퍼블릭 IPv4 주소로 변경
- 42
- nginx의 documentRoot 설정
- 교재에서 제공하는 샘플 프로젝트가 위치한 /var/www/aws-exercise-a/ 경로를 지정
- 클라이언트가 웹서버 접속 시 서버는 위의 경로를 가장 먼저 찾음
- 45
- phusion passenget 활성화
- 46
- 기본타입을 Node.js로 설정
- 47
- phusion passenget의 시작 파일을 app.js로 지정
sudo /opt/nginx/sbin/nginx
마지막으로 nginx(웹 서비스) 시작
이제 윈도우의 웹 브라우저 주소창에 EC2 인스턴스의 퍼블릭 IPv4 주소를 입력
AWS exercise의 A project입니다. 라는 문장이 화면에 보임!
p38
cd /etc/init.d
=> /etc/init.d 디렉토리(폴더)는 서비스 스크립트 파일들이 존재함
sudo vi nginx
=> 새 파일이 만들어지면 i 를 눌러서 입력모드 전환 => p39 페이지 아래의 경로에서 받은 스크립트 내용을 붙여 넣음 => 수업 시 미리 복사 받은 "nginx 시작 스크립트.txt" 공유 파일 활용
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \\
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /opt/nginx/conf/nginx.conf
# pidfile: /opt/nginx/logs/nginx.pid
# modified from <http://articles.slicehost.com/2009/2/2/centos-adding-an-nginx-init-script>
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/opt/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
ls -l
=> 새롭게 생성한 nginx가 보이나 x(실행권한) 권한이 없음
sudo chmod 755 nginx
=> vi 편집기로 생성한 nginx 파일의 실행권한을 부여 => chmod : change modify , 퍼미션 변경 => 755(rwxr-xr-x) : 소유자 읽고/쓰고/실행 가능, 소유그룹 읽고/실행 가능, 그 밖의 유저 읽고/실행 가능
ls -l
=> nginx가 녹색으로 변경된 것을 확인
sudo service nginx stop
sudo service nginx start
sudo service nginx restart
sudo service nginx status
서비스가 잘 동작하는지 확인
p40
sudo chkconfig --add nginx
ntsysv 프로그램을 실행할때 nginx 항목이 보이도록 추가시킴
sudo ntsysv
[*] nginx
스페이스바를 눌러 등록된 nginx 항목에 * 를 넣고 탭키 눌러 OK 선택
이제 exercise-intance가 시작될 때 자동으로 nginx가 동작
p41
하나의 서버에 두개의 애플리케이션 동작
cd /var/www
/var/www/ 디렉터리로 이동
git clone <https://github.com/deopard/aws-exercise-b.git>
퍼블릭 DNS 주소로 접근 시 보여줄 샘플 프로젝트 b를 다운로드 받음
cd aws-exercise-b
다운로드 받은 샘플 프로젝트 ‘aws-exercise-b’로 이동
npm install
sudo vi /opt/nginx/conf/nginx.conf
nginx의 설정 파일 수정
39 라인에 커서를 위치시키고 9yy를 눌러서 9줄 복사
- 89번 라인의 }부분이 39번 라인의 { 과 세트
- 90번 라인에 커서 위치시킨 후 p 눌러서 붙여넣기
- 91번 부터 복사한 9줄이 붙여넣기됨
91 server {
92 listen 80;
93 server_name 13.125.84.244;
94
95 root /var/www/aws/exercise-a/public;
96
97 passenger_enabled on;
98 passenger_app_type node;
99 passenger_startup_file /var/www/aws-exercise-a/app.js;
100 }
새로만든 server 블록은 } 이 없으므로 100번 라인에서 추가
새롭게 추가한 91~100번 라인 수정
91 server {
92 listen 80;
93 server_name 퍼블릭 IPv4 DNS 주소;
94
95 root /var/www/aws/exercise-b/public;
96
97 passenger_enabled on;
98 passenger_app_type node;
99 passenger_startup_file /var/www/aws-exercise-a/app.js;
100 }
esc -> :wq
sudo service nginx restart
마지막으로 변경된 내용을 적용한 후 다시 시작
윈도우 웹 브라우저로 가서 IPv4주소와 IPv4 DNS 주소를 차례대로 입력해서 확인
'AWS' 카테고리의 다른 글
[AWS] Auto Scaling ② - 동작 확인 (0) | 2023.12.28 |
---|---|
[AWS] Auto Scaling ① - 생성·절차 (0) | 2023.12.28 |
[AWS] 교재 EC2 인스턴스 작성 명령어 모음 ③ (0) | 2023.12.26 |
[AWS] 교재 EC2 인스턴스 작성 명령어 모음 ② (0) | 2023.12.26 |
[AWS] 리눅스 파일 압축 및 해제 (0) | 2023.12.20 |