nano /var/log/nginx/access.log
nano /var/log/nginx/error.log
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 크라우드 펀딩
- 안드로이드의 파편화
- 구글 이권다툼
- 해저 데이터서버
- 샤오미
- 1위 기업
- jQuery
- 플로팅 배너
- 정보 소유권
- P9
- .animate
- MI5
- 네이버 포스트
- 갤럭시 S7
- 예제
- 안드로이드
- Math.random
- 폐쇄형 SNS
- 저품질
- 총판
- 화훼이
- 클릭몬
- 후기영상
- 인스타그램
- 데이터 센터
- 트위터
- Stagefright
- 수익성
- 구글 플레이
- 영상 만들기
- Today
- Total
IT & CODE 이야기
AWS Ubuntu 16.04 에 Rails Project를 nginx로 Deploy 하기 본문
AWS Ubuntu 16.04 에 Rails Project를 nginx로 Deploy 하기
1단계: RVM으로 Rails 설치
먼저 AWS에 Ubuntu instance를 받아서 SSH 접속을 합니다
우선 스무스한 진행을 위해 기본 파일을 받습니다.
sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev
다음 명령어를 연속으로 입력합니다.
이 과정은 RVM을 설치하여 rails를 받는 과정입니다.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm install 2.3.3
rvm use 2.3.3 --default
루비가 제대로 설치 되었는지 확인해 봅니다.
ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
이제 rails 를 설치합니다
gem install bundler
sudo apt-get install nodejs
gem install rails -v 5.0.0.1
2단계: Deploy할 Rails Project 설치
이제 알아서 Deploy할 프로젝트를 받습니다.
git을 이용하여 클론 하면 되겠죠?
다운을 받으셨다면 이제 프로젝트의 Gem을 깔도록 합니다
#디렉토리를 프로젝트 파일 안에 들어갑니다!
bundle install --deployment --without development test
이제 프로덕션 모드를 위해 secret key base 환경변수를 추가합니다
nano config/secrets.yml
이 명령어를 치면
production:
secret_key_base: <%=ENV["SECRET_KEY_BASE"]%>
저기서 <%=ENV["SECRET_KEY_BASE"]%> 자리에 암호를 집어넣습니다.
Control + X, Y, Enter로 빠져나옵니다.
precompile 명령을 실행합니다
rake assets:precompile RAILS_ENV=production
3단계: Nginx 설치 및 설정
이제 Nginx를 설치하도록 하죠
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates
# Add Passenger APT repository
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update
# Install Passenger & Nginx
sudo apt-get install -y nginx-extras passenger
한줄 한줄 명령어를 입력해서 nginx-extras 와 passenger 두 프로그램을 우분투에 받습니다.
sudo service nginx start
이 명령을 통해 서버에 접속하면 Nginx가 작동된다는 페이지가 나타나게 됩니다.
이제 설정만 좀 만지면 거의 다 끝납니다! 힘내세요
sudo nano /etc/nginx/nginx.conf
다음 명령어로 문서 파일을 열어서,
##
# Phusion Passenger config
##
# Uncomment it if you installed passenger or passenger-enterprise
##
include /etc/nginx/passenger.conf;
#include /etc/nginx/passenger.conf; 앞에 붙어있는 #를 지워서 주석처리를 풀어주세요!
(Control + X, Y, Enter로 빠져 나옵니다)
마지막 파일 설정만 하면 이제 Rails Project를 볼 수 있습니다.
$ passenger-config about ruby-command
passenger-config was invoked through the following Ruby interpreter:
Command: /usr/local/rvm/gems/ruby-2.3.3/wrappers/ruby
Version: ruby 2.3.3p85 (2015-02-26 revision 49769) [x86_64-linux]
...
passenger-config about ruby-command라는 명령어를 치면 위와같이 밑에 주저리 주저리 말이 달리게 됩니다. 여기서 Command: 다음에 오는 경로를 기억해주세요 -REMEMBER
sudo nano /etc/nginx/sites-enabled/default
이 명령어로 안에있는 파일을 열면, 다음과 같이 바꿔주세요
server {
listen 0.0.0.0:80 default_server;
# Tell Nginx and Passenger where your app's 'public' directory is
root /당신의_프로젝트_경로/public;
# Turn on Passenger
passenger_enabled on;
rails_env production;
passenger_ruby 기억해 놓은 경로 넣는 위치;
}
당신의_프로젝트 경로 위치에는 프로젝트 폴더에서(아까 bundle install한 위치 있잖아요) 거기서 pwd라는 명령어로 경로를 얻어서 넣으시거나 잘 알고 계시다면 그냥 넣으시면 됩니다.
(저의 경우 /home/ubuntu/huhs.net 이었습니다)
기억해 놓은 경로 넣는 위치에는 제가 전단계에서 기억하라고 했던 경로를 넣으시면 됩니다.
자 이제 환경변수를 이 파일에 또 적어 넣어야 합니다.
Control + X, Y, Enter로 빠져 나오고, rake secret 이라는 명령을 쳐서 비밀 키 값을 만들어냅니다. 이후 이 값을 복사해놓고
sudo nano /etc/nginx/sites-enabled/default
명령어로 다시 파일에 들어가서 비밀 키를 밑에 passenger_env_var 이라는 명령어로 SECRET_KEY_BASE 라는 환경변수의 값을 지정합니다.
또 다른 환경변수를 설정해야 한다면 밑에줄에 추가하시면 됩니다.
server {
listen 0.0.0.0:80 default_server;
# Tell Nginx and Passenger where your app's 'public' directory is
root /당신의_프로젝트_경로/public;
# Turn on Passenger
passenger_enabled on;
rails_env production;
passenger_ruby 기억해 놓은 경로 넣는 위치;
passenger_env_var SECRET_KEY_BASE 비밀 키 입력!;
passenger_env_var 다른 환경변수 환경변수의 값 입력;
}
Control + X, Y, Enter로 빠져 나옵니다.
sudo service nginx restart
이로써 Deploy 작업이 완료됩니다.
'CODE > Server' 카테고리의 다른 글
Ubuntu에 sftp 설정하기 (2) | 2018.06.20 |
---|---|
기존 Nginx 웹 서버에 Adminer 설치하기 (0) | 2018.06.08 |
웹페이지 속도 최적화 (0) | 2018.05.17 |
AWS에 C9 Rails server 만들기 (25) | 2016.04.20 |
Linux에 rails 서버 설치하기(미완료) (0) | 2016.04.18 |