在 centos 下使用 apache+mod_wsgi 部署了 moinmoin,但是编辑和保存页面很慢,于是准备使用 nginx+uwsgi 重新部署
本文假定已经按照官方指引 quick moinmoin on centos 完成了 apache 和 mod_wsgi 之外的基础安装
安装 nginx
默认情况下,centos 下没有 nginx 的源,需要自己手动添加,访问 http://nginx.org/en/linux_packages.html#stable 下载 centos 6 的 rpm 包,并安装
wget http://nginx.org/packages/centos/6/noarch/rpms/nginx-release-centos-6-0.el6.ngx.noarch.rpm
rpm -ivh nginx-release-centos-6-0.el6.ngx.noarch.rpm
然后执行下面的命令安装 nginx
yum install nginx
安装 uwsgi
安装 python 包管理工具 pip
yum install python-devel python-setuptools
wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py -o – | python
通过 pip 安装 uwsgi (使用豆瓣的境像)
pip install -v uwsgi -i http://pypi.douban.com/simple
使用 uwsgi 启动 moin
创建 uwsgi 配置 /etc/uwsgi/uwsgi.xml 内容如下
/var/run/moin.sock
666
256
6
其中 666 这句是这了防止 nginx 访问 moin.sock 没有权限。
重命名 moin 的 wsgi 启动脚本,以被 uwsgi 识别
cd /usr/local/share/moin
mv moin.wsgi moin_wsgi.py
要启动 uwsgi 可以使用下面的命令
uwsgi -x /etc/uwsgi/uwsgi.xml
配置 nginx 访问 uwsgi
建立 /etc/nginx/conf.d/moin.conf 内容如下
# moinmoin 虚拟主机配置
server {
listen your_server_ip:80;
server_name localhost;
access_log /var/log/nginx/moin.access_log main;
error_log /var/log/nginx/moin.error_log info;
location ^~ / {
include uwsgi_params;
uwsgi_pass unix:///var/run/moin.sock;
# uwsgi_param uwsgi_pyhome /usr/local/lib/python2.6/; #site-packages/;
uwsgi_param uwsgi_chdir /usr/local/share/moin/;
uwsgi_param uwsgi_script moin_wsgi;
uwsgi_param script_name /;
uwsgi_modifier1 30;
}
location ^~ /moin_static193/ {
alias /usr/local/lib/python2.6/site-packages/moinmoin/web/static/htdocs/;
add_header cache-control public;
expires 1m;
}
}
运行 nginx
nginx
运行及故障排除
接下来你可以通过浏览器访问 wiki 了,但是发现编辑和保存页面依旧很慢,然后稍微 google 了下就发现了 一篇解决这个问题的文章,很快解决了慢的问题
编辑 wikiconfig.py 加入如下配置
log_reverse_dns_lookups = false
重启 uwsgi 后再访问 wiki,发现慢的问题解决了(为什么我之前没有找到这篇文章!)