Selectel resumed cloud server service selectel, so I decided to create new server in new server pool and also move from lighttpd to nginx.
Server is running on Debian Squeeze Mini.
Nginx is installed from squeeze-backports repository.
From root:
echo "# squeeze-backports" >> /etc/apt/sources.list echo "deb http://backports.debian.org/debian-backports squeeze-backports main" >> /etc/apt/sources.list apt-get update apt-get -t squeeze-backports install nginx
For controlling server processes install supervisord:
apt-get install supervisor
Install virtualenv and mercurial:
apt-get install virtualenv apt-get install mercurial
useradd -m -s /bin/bash blog su blog
From blog user:
cd ~ virtualenv env cd env . bin/activate
Under env:
easy_install pip pip install gunicorn
I use customized version, so I get it from my repository (under env):
cd ~ hg clone https://bitbucket.org/ForeverYoung/blohg cd blohg python setup.py install
If there is an error while installing, install gcc and python-dev (under root):
apt-get install gcc apt-get install python-dev
For stock version (under env):
pip install blohg
Create blog_app.py in ~blog:
#!/usr/bin/python from blohg import create_app app = create_app("/home/blog/blog")
Clone your blog to server (as here):
hg clone my_blohg ssh://blog@yourdomain.tld/home/blog/blog/
Create gunicorn.conf.py in ~blog:
import multiprocessing workers = multiprocessing.cpu_count() * 2 + 1 bind = "unix:/home/blog/blog.socket" pidfile = "/home/blog/blog.pid" logfile = "/home/blog/logs/gunicorn.log" loglevel = "info" proc_name = "blog" user = "www-data" group = "www-data"
Create /etc/supervisor/conf.d/blog.conf:
[program:blog] command = /home/blog/env/bin/gunicorn blog_app:app -c /home/blog/gunicorn.conf.py directory = /home/blog/ autostart = true autorestart = true redirect_stderr = true daemon = false debug = false logfile = /home/blog/logs/supervisor.log loglevel = "info" user = "www-data"
Start supervisor:
/etc/init.d/supervisor start
Create /etc/nginx/sites-available/blog:
server { listen 80; server_name yourdomain.tld; access_log /home/blog/logs/nginx_access.log; error_log /home/blog/logs/nginx_error.log; location / { proxy_pass http://unix:/home/blog/blog.socket; include proxy_params; } }
Create link in sites-enabled:
cd /etc/nginx/sites-enabled ln -s ../sites-available/blog blog
Start nginx:
/etc/init.d/nginx start
That's all!
© Anton Novosyolov | Design by: Matthew James Taylor | Powered by: blohg 0.10.1_multilang+/2fc5a1d551a5+