서버 설정 · 2 min read · Jan 23, 2026
nginx에서 Redmine 프로젝트 관리 실행하기 (Debian Wheezy)
nginx에서 Redmine 프로젝트 관리 실행하기 (Debian Wheezy)
Redmine은 Ruby로 작성된 프로젝트 관리 도구입니다. 이 튜토리얼에서는 Debian Wheezy에서 nginx 웹 서버를 통해 thin(빠른 Ruby 웹 서버)의 도움으로 Redmine을 제공하는 방법을 설명합니다.
이 방법이 여러분에게 작동할 것이라는 보장을 하지 않습니다!
1 사전 노트
저는 사용자 web1과 그룹 client0이 소유한 문서 루트 /var/www/example.com/web에 www.example.com 웹사이트를 준비했습니다(여기에 Redmine이 설치됩니다).
저는 또한 Redmine을 위한 MySQL 데이터베이스 c0db1을 준비했습니다. 사용자 이름은 c0db1이며, 비밀번호는 FyZ5z4QGfhTf8입니다.
2 Redmine 설치하기
먼저 몇 가지 필수 패키지를 설치합니다:
apt-get install thin ruby rake rubygems libopenssl-ruby libmysql-ruby librmagick-ruby ruby-dev libmysqlclient-dev libmagick-dev curlgem install sass
gem install compass최신 Redmine을 다운로드하고 문서 루트 /var/www/example.com/web에 복사합니다:
cd /tmp
wget http://www.redmine.org/releases/redmine-2.4.2.tar.gz
tar xvfz redmine-2.4.2.tar.gz
mv redmine-2.4.2/* /var/www/example.com/web
cd /var/www/example.com/web
chown -R web1:client0 *MySQL 데이터베이스의 로그인 세부정보를 입력합니다:
cp config/database.yml.example config/database.yml
vi config/database.yml[...]
production:
adapter: mysql2
database: c0db1
host: localhost
username: c0db1
password: "FyZ5z4QGfhTf8"
encoding: utf8
[...]필요한 다른 패키지를 설치하고 데이터베이스를 채웁니다:
apt-get install libmagickwand-devgem install rmagickgem install bundlerbundle install --without development test postgresql sqliterake generate_secret_tokenrake db:migrate RAILS_ENV="production"rake redmine:load_default_data RAILS_ENV="production"3 thin 구성하기
다음으로 nginx가 요청을 프록시할 Ruby 웹 서버 thin을 구성합니다.
ln -s /etc/thin1.9.1 /etc/thinmkdir /var/log/thin
chmod 755 /var/log/thin
cd /etc/thin문서 루트의 소유자(web1)와 같은 이름의 thin 구성 파일을 만듭니다:
vi web1.yml로그, pid, 소켓 및 사용자 줄에서 올바른 사용자(web1)를 사용하고 그룹 줄에서 올바른 그룹(client0)을 사용해야 합니다. chdir 줄에서 올바른 문서 루트를 사용하세요:
---
chdir: /var/www/example.com/web
environment: production
timeout: 30
log: /var/log/thin/web1.log
pid: /var/run/thin/web1.pid
max_conns: 1024
max_persistent_conns: 512
require: []
wait: 30
socket: /var/run/thin/web1.sock
daemonize: true
user: web1
group: client0
servers: 1
prefix: /thin이 소켓을 생성할 /var/run/thin 디렉토리를 만듭니다:
mkdir /var/run/thin
chown -R web1:client0 /var/run/thinthin이 시작될 때 디렉토리가 존재하는지 확인하기 위해 /etc/init.d/thin init 스크립트의 SCRIPT_NAME 줄 바로 뒤에 다음 줄을 추가합니다:
vi /etc/init.d/thin[...]
DAEMON=/usr/bin/thin
SCRIPT_NAME=/etc/init.d/thin
test -e /var/run/thin || install -m 755 -o web1 -g client0 -d /var/run/thin
[...]이제 thin을 시작합니다…
/etc/init.d/thin start… 그리고 생성된 소켓(/var/run/thin/web1.0.sock)을 기록해 두세요 - nginx 구성에서 필요합니다:
root@server1:/etc/thin# /etc/init.d/thin start
[start] /etc/thin1.9.1/web1.yml ...
Starting server on /var/run/thin/web1.0.sock ...
root@server1:/etc/thin#Monit를 사용하는 경우 thin이 항상 실행되도록 하기 위해 /etc/monit/monitrc에 다음 줄을 추가할 수 있습니다:
vi /etc/monit/monitrc[...]
check process thin with pidfile /var/run/thin/web1.0.pid
start program = "/etc/init.d/thin start"
stop program = "/etc/init.d/thin stop"
[...]그 후 Monit를 재시작합니다:
/etc/init.d/monit restart4 nginx 구성하기
다음으로 Redmine에 접근하기 위해 nginx vhost를 구성해야 합니다. 다음 구성을 server {} 컨테이너(또는 ISPConfig를 사용하는 경우 nginx Directives 필드)에 붙여넣어야 합니다 - 올바른 thin 소켓을 사용해야 합니다:
client_max_body_size 100M;
location / {
proxy_set_header X-Reak-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://unix:/var/run/thin/web1.0.sock;
break;
}
}
이제 끝났습니다! 웹사이트를 방문하면 Redmine을 사용할 수 있어야 합니다. 기본 사용자 이름은 admin이며, 비밀번호도 admin입니다.


4 링크
- Redmine: http://www.redmine.org/
- nginx: http://nginx.org/
- Debian: http://www.debian.org/
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.