利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程


Posted in Python onMay 05, 2015

在 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 内容如下

<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 没有权限。

重命名 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,发现慢的问题解决了(为什么我之前没有找到这篇文章!)

Python 相关文章推荐
推荐下python/ironpython:从入门到精通
Oct 02 Python
python实现保存网页到本地示例
Mar 16 Python
python读取json文件并将数据插入到mongodb的方法
Mar 23 Python
python套接字流重定向实例汇总
Mar 03 Python
python编程嵌套函数实例代码
Feb 11 Python
对Python 网络设备巡检脚本的实例讲解
Apr 22 Python
Python数据分析matplotlib设置多个子图的间距方法
Aug 03 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
Feb 21 Python
python使用pandas处理excel文件转为csv文件的方法示例
Jul 18 Python
Django xadmin开启搜索功能的实现
Nov 15 Python
python在linux环境下安装skimage的示例代码
Oct 14 Python
Python实现的HTTP并发测试完整示例
Apr 23 #Python
安装dbus-python的简要教程
May 05 #Python
使用SAE部署Python运行环境的教程
May 05 #Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
May 05 #Python
在Python中使用mechanize模块模拟浏览器功能
May 05 #Python
python实现自动更换ip的方法
May 05 #Python
浅谈MySQL中的触发器
May 05 #Python
You might like
php数组去重的函数代码
2013/02/03 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
Thinkphp5框架实现获取数据库数据到视图的方法
2019/08/14 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
2019/10/11 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
酷! 不同风格页面布局幻灯片特效js实现
2021/02/19 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
js插件Jcrop自定义截取图片功能
2016/10/14 Javascript
require、backbone等重构手机图片查看器
2016/11/17 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
Vue实现验证码功能
2019/12/03 Javascript
Python性能优化的20条建议
2014/10/25 Python
如何让python的运行速度得到提升
2020/07/08 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
Delphi笔试题
2016/11/14 面试题
工商学院毕业生自荐信
2013/11/12 职场文书
幼儿教师考核制度
2014/01/25 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
主办会计岗位职责
2014/03/13 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
云冈石窟导游词
2015/02/04 职场文书
毕业实习感受与体会
2015/05/26 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
特种设备安全管理制度
2015/08/06 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书