利用Python腳本在Nginx和uwsgi上部署MoinMoin的教程
在 CentOS 下使用 apache+mod_wsgi 部署了 MoinMoin,但是編輯和保存頁(yè)面很慢,于是準(zhǔn)備使用 nginx+uwsgi 重新部署
本文假定已經(jīng)按照官方指引 Quick MoinMoin on CentOS 完成了 apache 和 mod_wsgi 之外的基礎(chǔ)安裝
安裝 Nginx
默認(rèn)情況下,CentOS 下沒(méi)有 nginx 的源,需要自己手動(dòng)添加,訪問(wèn) 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
然后執(zhí)行下面的命令安裝 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
通過(guò) pip 安裝 uwsgi (使用豆瓣的境像)
pip install -v uwsgi -i http://pypi.douban.com/simple
使用 uwsgi 啟動(dòng) moin
創(chuàng)建 uwsgi 配置 /etc/uwsgi/uwsgi.xml 內(nèi)容如下
<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 訪問(wèn) moin.sock 沒(méi)有權(quán)限。
重命名 moin 的 wsgi 啟動(dòng)腳本,以被 uwsgi 識(shí)別
cd /usr/local/share/moin mv moin.wsgi moin_wsgi.py
要啟動(dòng) uwsgi 可以使用下面的命令
uwsgi -x /etc/uwsgi/uwsgi.xml
配置 nginx 訪問(wèn) uwsgi
建立 /etc/nginx/conf.d/moin.conf 內(nèi)容如下
# moinmoin 虛擬主機(jī)配置
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;
}
}
運(yùn)行 nginx
nginx
運(yùn)行及故障排除
接下來(lái)你可以通過(guò)瀏覽器訪問(wèn) Wiki 了,但是發(fā)現(xiàn)編輯和保存頁(yè)面依舊很慢,然后稍微 Google 了下就發(fā)現(xiàn)了 一篇解決這個(gè)問(wèn)題的文章,很快解決了慢的問(wèn)題
編輯 wikiconfig.py 加入如下配置
log_reverse_dns_lookups = False
重啟 uwsgi 后再訪問(wèn) Wiki,發(fā)現(xiàn)慢的問(wèn)題解決了(為什么我之前沒(méi)有找到這篇文章!)
- 詳解使用Nginx和uWSGI配置Python的web項(xiàng)目的方法
- Centos5.4+Nginx-0.8.50+UWSGI-0.9.6.2+Django-1.2.3搭建高性能WEB服務(wù)器
- Python Web編程之WSGI協(xié)議簡(jiǎn)介
- 使用Nginx+uWsgi實(shí)現(xiàn)Python的Django框架站點(diǎn)動(dòng)靜分離
- 在Linux系統(tǒng)上通過(guò)uWSGI配置Nginx+Python環(huán)境的教程
- 在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
- 詳解python使用Nginx和uWSGI來(lái)運(yùn)行Python應(yīng)用
- python Web開(kāi)發(fā)你要理解的WSGI & uwsgi詳解
相關(guān)文章
Python中print()函數(shù)使用實(shí)例詳解
Python的print()函數(shù)可以打印輸出,常用來(lái)將內(nèi)容打印到控制臺(tái),print()是python中最常見(jiàn)的一個(gè)函數(shù),本文就通過(guò)一些實(shí)例來(lái)給大家講講如何使用print()函數(shù),需要的朋友可以參考下2023-07-07
Python和Excel的完美結(jié)合的常用操作案例匯總
這篇文章主要介紹了Python和Excel的完美結(jié)合的常用操作案例匯總,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
Python中集合的創(chuàng)建及常用函數(shù)的使用詳解
這篇文章主要為大家詳細(xì)介紹了Python中集合的創(chuàng)建、使用和遍歷,集合常見(jiàn)的操作函數(shù),集合與列表,元組,字典的嵌套,感興趣的小伙伴可以了解一下2022-06-06
利用Python制作一個(gè)簡(jiǎn)單的天氣播報(bào)系統(tǒng)
最近天氣的多變,好幾次出門半路天氣轉(zhuǎn)變。本文將利用python整個(gè)天氣爬蟲來(lái)獲取天氣情況。這樣也好可以進(jìn)行一個(gè)提前預(yù)防,感興趣的可以動(dòng)手試一試2022-05-05
Python實(shí)現(xiàn)生成隨機(jī)日期字符串的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)生成隨機(jī)日期字符串的方法,涉及Python日期時(shí)間及隨機(jī)數(shù)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
一文帶你精通Python中*args和**kwargs的應(yīng)用技巧
如果能在Python中創(chuàng)建適應(yīng)不同場(chǎng)景的函數(shù),而無(wú)需每次都重寫它們,會(huì)使得操作簡(jiǎn)潔方便,這就是*args和**kwargs的魔力所在,下面我們就來(lái)看看它們的具體一些應(yīng)用技巧吧2024-03-03

