Over the last few weeks I have been converting all my different sites from Apache to Nginx. The nice part of this plan is as I move on from system to system, each change over get’s easier then the last.
This how-to will walk you threw how to instal Trac on a Nginx server. The plan here is to proxy your trac site back to tracd running server. Only proxy the files that are not real and can not be served by nginx alone.
To start out, install python and some python tools to your server
yum -y install python python-genshi python-setuptools subversion python-setuptools-devel
Now you need to download and install trac from svn
svn checkout http://svn.edgewall.org/repos/trac/trunk/ trac cd trac
After you have the current version, compile and install trac
python ./setup.py install
This how-to assumes you already have a working trac profile to host on this site. If you do not already have a trac profile, please look at trac-admin /path/to/websites/directory initenv.
After you have trac installed, you need to start it.
export TRAC_ENV_INDEX_TEMPLATE=/var/www/trac/projects_list_template.html /usr/bin/python /usr/bin/tracd -d -p 3050 --auth=*,/var/www/trac.example.com/projects/.htpasswd,trac.example.com --protocol=http -e /var/www/trac.example.com/projects
And here’s a simple example Nginx config for your new trac setup.
# trac.example.com
upstream trac.example.com {
server 127.0.0.1:3050;
}
server {
listen 80;
server_name trac.example.com;
root /var/www/trac.example.com;
location /html/ {
expires 180d;
}
location /favicon.ico { }
location /robots.txt { }
location / {
proxy_pass http://trac.example.com;
proxy_set_header X-Real-IP $remote_addr;
}
}