在 CentOS 下使用 apache+mod_wsgi 部署了 MoinMoin,但是編輯和保存頁面很慢,于是準(zhǔn)備使用 nginx+uwsgi 重新部署
本文假定已經(jīng)按照官方指引 Quick MoinMoin on CentOS 完成了 apache 和 mod_wsgi 之外的基礎(chǔ)安裝
安裝 Nginx
默認(rèn)情況下,CentOS 下沒有 nginx 的源,需要自己手動添加,訪問 http://nginx.org/en/linux_packages.html#stable 下載 CentOS 6 的 rpm 包,并安裝
1
2
|
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 |
然后執(zhí)行下面的命令安裝 nginx
yum install nginx
安裝 uwsgi
安裝 python 包管理工具 pip
1
2
|
yum install python-devel python-setuptools wget https: //raw .github.com /pypa/pip/master/contrib/get-pip .py -O - | python |
通過 pip 安裝 uwsgi (使用豆瓣的境像)
1
|
pip install - v uwsgi -i http: //pypi .douban.com /simple |
使用 uwsgi 啟動 moin
創(chuàng)建 uwsgi 配置 /etc/uwsgi/uwsgi.xml 內(nèi)容如下
1
2
3
4
5
6
7
8
9
|
< uwsgi > < socket >/var/run/moin.sock</ socket > < chmod-socket >666</ chmod-socket > < limit-as >256</ limit-as > < processes >6</ processes > < memory-report /> < vhost /> < no-site /> </ uwsgi > |
其中 <chmod-socket>666</chmod-socket> 這句是這了防止 nginx 訪問 moin.sock 沒有權(quán)限。
重命名 moin 的 wsgi 啟動腳本,以被 uwsgi 識別
1
2
|
cd /usr/local/share/moin mv moin.wsgi moin_wsgi.py |
要啟動 uwsgi 可以使用下面的命令
1
|
uwsgi -x /etc/uwsgi/uwsgi .xml |
配置 nginx 訪問 uwsgi
建立 /etc/nginx/conf.d/moin.conf 內(nèi)容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# 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
1
|
nginx |
運行及故障排除
接下來你可以通過瀏覽器訪問 Wiki 了,但是發(fā)現(xiàn)編輯和保存頁面依舊很慢,然后稍微 Google 了下就發(fā)現(xiàn)了 一篇解決這個問題的文章,很快解決了慢的問題
編輯 wikiconfig.py 加入如下配置
log_reverse_dns_lookups = False
重啟 uwsgi 后再訪問 Wiki,發(fā)現(xiàn)慢的問題解決了(為什么我之前沒有找到這篇文章!)