利用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 随机数生成的代码的详细分析
May 15 Python
Python yield 小结和实例
Apr 25 Python
python并发2之使用asyncio处理并发
Dec 21 Python
Python+tkinter使用80行代码实现一个计算器实例
Jan 16 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
Python3.4 tkinter,PIL图片转换
Jun 21 Python
Numpy 改变数组维度的几种方法小结
Aug 02 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
python对象转字典的两种实现方式示例
Nov 07 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
在 Golang 中实现 Cache::remember 方法详解
Mar 30 Python
python实现socket简单通信的示例代码
Apr 13 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 文章调用类代码
2011/08/11 PHP
php数组合并的二种方法
2014/03/21 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
php如何执行非缓冲查询API
2016/07/22 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
vue 标签属性数据绑定和拼接的实现方法
2018/05/17 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
在Echarts图中给坐标轴加一个标识线markLine
2020/07/20 Javascript
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python实现微信小程序支付功能
2019/07/25 Python
用Python画一个LinkinPark的logo代码实例
2019/09/10 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
Django视图类型总结
2021/02/17 Python
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
中学运动会广播稿
2014/01/19 职场文书
土木工程师职业规划范文
2014/03/07 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
考研英语复习计划
2015/01/19 职场文书
西安大雁塔导游词
2015/02/10 职场文书
2015年度物流工作总结
2015/04/30 职场文书
微信搭讪开场白
2015/05/28 职场文书
感恩教师节主题班会
2015/08/12 职场文书