Nginx 通过 uwsgi 部属Python应用(以MoinMoin部属为例)
整个过程十分的简单,部属方式也确实十分简单,它不像 wsgi 那么麻烦,整个体验十分的不错,这里记下来我的整个配置过程。
安装 UWSGI
默认系统并没有安装UWSGI,在使用前,必须得先安装它,我使用的是 Ubuntu 服务器,可以使用下面的方法安装它:
sudo -s
add-apt-repository ppa:nginx/stable
add-apt-repository ppa:uwsgi/release
apt-get update
apt-get install uwsgi-python python-virtualenv
你可以在运行上面的命令时, 会提示没有 “add-apt-repository” 的错误,这是因为这个工具并没有随Ubuntu一同安装,你需要自己安装它,安装方法是下面这行命令:
sudo apt-get install python-software-properties
从 Ubuntu 9.10 开始我们可以使用 add-apt-repository 命令(实质是个python脚本)在source.list里添加 ppa 源了(同时完成导入key)
创建Wiki站点的配置文件
我的维基架设在 http://wiki.costony.com 上,准备使用Nginx将其转发到 Unix Socket 上,我所使用的 Nginx 虚拟机的配置文件如下:
server {
listen 80;
access_log /home/wwwlogs/wiki.costony.com.access.log;
error_log /home/wwwlogs/wiki.costony.com.error.log;
server_name wiki.costony.com;
location / {
include uwsgi_params;
uwsgi_pass unix:///tmp/wiki.costony.com.socket;
uwsgi_param UWSGI_PYTHOME /home/websites/costony.com/wiki/moinenv/;
uwsgi_param UWSGI_CHDIR /home/websites/costony.com/wiki/;
uwsgi_param UWSGI_SCRIPT moin_wsgi;
uwsgi_param UWSGI_SCHEME $scheme;
uwsgi_param REMOTE_USER $remote_user;
}
location /moin_static194/ {
alias /home/websites/costony.com/wiki/public/static/;
}
}
从上面的配置中我们可以看到:
- 我将Moin安装在它专用的 Virtuan Env中,同时,将其Static文件存放中一个特别的目录下,所以,这些都需要在安装 Moin的时候进行设定。
安装Python环境及 Moin
virtualenv /home/websites/costony.com/wiki/moinenv
cd /tmp
wget http://static.moinmo.in/files/moin-1.9.4.tar.gz
tar xvfz moin-1.9.4.tar.gz
source /home/websites/costony.com/wiki/moinenv/bin/activate
cd /tmp/moin-1.9.4
python setup.py install
deactivate
cp -r /tmp/moin-1.9.4/wiki /home/websites/costony.com/wiki
cd /home/websites/costony.com/wiki/wiki
mv wiki moin
cd moin
cp config/wikiconfig.py wikiconfig.py
cp server/moin.wsgi moin.wsgi
cp moin.wsgi moin_wsgi.py
cp /tmp/moin-1.9.4/MoinMoin/web/static/htdocs/* /home/websites/costony.com/wiki/public/static/
uwsgi-python -s /tmp/wiki.costony.com.socket --wsgi-file moin_wsgi.py -M -p 4 -d /home/wwwlogs/uwsgi.log
安装完成
评论已关闭