Ruby & Rails - Rails 5 는 ubuntu 16.04 에 nginx 를 설정 합 니 다.

2625 단어
전에https://www.jianshu.com/p/94e43753f80a위 에 이미 생산 환경 을 배 치 했 으 니, 지금 nginx 를 배치 해 야 합 니 다.
STEP 1: Nginx + Passenger 설치 빠 른 방법: 세트 로 설치
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7

$ sudo apt install -y apt-transport-https ca-certificates

# Add our 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 update

# Install Passenger + Nginx
$ sudo apt install -y nginx-extras passenger

문제 가 생기 면:https://stackoverflow.com/questions/28818597/nginx-and-passenger-dependencies-issue-digital-ocean-deployment
브 라 우 저 를 열 고 서버 IP 주 소 를 입력 하면 기본 Nginx 웹 페이지 를 볼 수 있 습 니 다: Welcome to nginx on Ubuntu!
Nginx 시작 및 재 시작 방법:
$ sudo service nginx start
$ sudo service nginx stop
$ sudo service nginx restart

STEP 2: Nginx 설정
/ etc / nginx / nginx. conf 를 편집 하고 설명 을 지우 고 다음 줄 을 엽 니 다.
include /etc/nginx/passenger.conf;

/ etc / nginx / nginx. conf 맨 위 에 줄 추가:
env PATH;

이 줄 이 없 으 면 Rails 에서 nodejs 경 로 를 찾 을 수 없습니다. nginx error log 에 Message from application: There was an error while trying to load the gem 'uglifier' 가 있 습 니 다. Gem Load Error is: Could not find a JavaScript runtime. Seehttps://github.com/rails/execjs for a list of available runtimes. 의 오류 입 니 다.
/ etc / nginx / sites - enabled / yourproject_name.conf
server {
  listen 80;
  server_name huangpeidong.xin; //    ,      ,  ip

  root /home/hpd/ieltsbro_production/hpd_ieltsbro/public; //     public  

  passenger_enabled on;

  passenger_min_instances 1;

  location ~ ^/assets/ {
    expires 1y;
    add_header Cache-Control public;
    add_header ETag "";
    break;
   }
}

이상 의 설정 은 Assets 정적 파일 이 만 료 되 지 않도록 설정 하 는 것 을 포함 합 니 다.그 중 servername your_domain. com 에서 domain 으로 바 꿔 주세요.Domain name 이 아직 등록 되 지 않 았 다 면 서버 IP 주 소 를 먼저 사용 할 수 있 습 니 다.하지만 서버 에 레일 스 프로젝트 나 사이트 가 여러 개 있다 면 도 메 인 별로 구분 해 야 한다.
같은 서버 에 여러 domain 이 연결 되 어 있 으 면 공백 으로 구분 할 수 있 습 니 다. 예 를 들 어:
server_name huangpeidong.xin www.huangpeidong.xin;

이렇게 세 개의 domain 이 모두 같은 Rails 로 연 결 될 것 이다.
마지막 으로 sudo service nginx restart 를 실행 하면 Nginx 설정 을 사용 합 니 다.나중에 레일 스 가 다시 불 러 올 변경 사항 이 있 지만 Nginx 전 체 를 다시 시작 하고 싶 지 않 으 면 레일 스 응용 프로그램 디 렉 터 리 에서 touch tmp / restart. txt 를 실행 하면 Passenger 는 Nginx 를 다시 불 러 올 필요 가 없다 는 것 을 알 게 될 것 입 니 다.
참고 글:http://blog.csdn.net/ximi_qin287624952/article/details/70169614

좋은 웹페이지 즐겨찾기