利用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中的递归函数
Apr 27 Python
在Python中的Django框架中进行字符串翻译
Jul 27 Python
KMP算法精解及其Python版的代码示例
Jun 01 Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 Python
详解如何将python3.6软件的py文件打包成exe程序
Oct 09 Python
python aiohttp的使用详解
Jun 20 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
python修改字典键(key)的方法
Aug 05 Python
Python终端输出彩色字符方法详解
Feb 11 Python
python适合做数据挖掘吗
Jun 16 Python
解决virtualenv -p python3 venv报错的问题
Feb 05 Python
python爬取豆瓣电影TOP250数据
May 23 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新手上路(七)
2006/10/09 PHP
PHP 远程关机实现代码
2009/11/10 PHP
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
php获取qq用户昵称和在线状态(实例分析)
2013/10/27 PHP
PHP代码优化的53个细节
2014/03/03 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
JS中==与===操作符的比较
2009/03/21 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
鼠标拖拽移动子窗体的JS实现
2014/02/25 Javascript
JavaScript中switch判断容易犯错的一个细节
2014/08/27 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
Javascript中Array用法实例分析
2015/06/13 Javascript
原生js配合cookie制作保存路径的拖拽
2015/12/29 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
python实现合并两个数组的方法
2015/05/16 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
利用Anaconda简单安装scrapy框架的方法
2018/06/13 Python
python opencv实现运动检测
2018/07/10 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
PyQt5组件读取参数的实例
2019/06/25 Python
基于python使用tibco ems代码实例
2019/12/20 Python
python 实现PIL模块在图片画线写字
2020/05/16 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
瑞典网上购买现代和复古家具:Reforma
2019/10/21 全球购物
俄罗斯在线服装店:STOLNIK
2021/03/07 全球购物
关于人生的感言
2014/01/17 职场文书
吃空饷专项治理工作实施方案
2014/03/04 职场文书
2014年法制宣传日活动方案
2014/11/02 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
Java实现多线程聊天室
2021/06/26 Java/Android