유 니 콘 을 사용 하여 Sinatra 응용 프로그램 을 Nginx 에 배치 합 니 다.

2015 단어
Sinatra 는 제 가 좋아 하 는 웹 개발 프레임 워 크 입 니 다. Rails 보다 경량급 이 고 많은 convention 이 아 닌 더 많은 통 제 를 해 줍 니 다.Sinatra 의 응용 프레임 워 크 는 나의 boilerplate 를 참고 할 수 있 습 니 다.https://github.com/frederichchen/fc_sinatra_boilerplate
평소에 개발 할 때 저 는 Thin 으로 서버 를 만 들 고 배치 할 때 효율 이 높 은 유 니 콘 을 사용 하기 때문에 먼저 gem install 유 니 콘 이 필요 합 니 다.
배치 할 때 Sinatra 응용 루트 디 렉 터 리 에 먼저 들 어가 야 합 니 다. 그 중에서 각각 tmp, tmp / sockets, tmp / pids 와 log 네 개의 디 렉 터 리 를 만 듭 니 다.
그리고 Sinatra 에 적 용 된 루트 디 렉 터 리 에 유 니 콘 rb 파일 을 새로 만 듭 니 다. 내용 은:
@dir = "/path/to/app/"

worker_processes 2
working_directory @dir

timeout 60

listen "#{@dir}tmp/sockets/unicorn.sock", :backlog => 64

pid "#{@dir}tmp/pids/unicorn.pid"

stderr_path "#{@dir}log/unicorn.stderr.log"
stdout_path "#{@dir}log/unicorn.stdout.log"

다음은 Nginx 를 설정 합 니 다. 설정 파일 nginx. conf 를 편집 하고 http 부분 에 다음 과 같은 내용 을 추가 합 니 다.
http {
    ...
    upstream unicorn_server {
        server unix:/path/to/app/tmp/sockets/unicorn.sock
        fail_timeout=0;
    }
    server {
        listen       80;
        server_name  localhost;
        root /path/to/app/public;
        location / {
            try_files $uri @app;
    }
        location @app {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            # pass to the upstream unicorn server mentioned above
            proxy_pass http://unicorn_server;
        }
    }
}

서 비 스 를 시작 할 때 먼저 실행 합 니 다: 유 니 콘 - c path / to / 유 니 콘. rb - E development - D, 그 중에서 - E 지정 환경 은 development 이 고 - D 는 daemon 으로 실행 합 니 다.그리고 nginx 서 비 스 를 시작 하고 접근 합 니 다.http://localhost/ 됐 습 니 다.
서 비 스 를 중단 하려 면 cat / path / to / app / tmp / pid / unicorn. pid | xargs kill - QUIT 를 실행 하면 됩 니 다.
유 니 콘 이 깨끗이 정리 되 지 않 았 다 면 다음 두 가지 명령 을 실행 해 야 합 니 다.
rm /path/to/app/tmp/sockets/unicorn.socket
rm /path/to/app/tmp/pids/unicorn.pid

좋은 웹페이지 즐겨찾기