nginx 与 uwsgi 之上的 moinmoin

发布时间:2019-12-04 14:31    浏览次数 :

[返回]

准备

安装以下工具:

nginx``uwsgi``virtualenv

nginx和uwsgi搭建另一篇文章:

安装virtualenv,需先安装pip,pip可以很方便的安装、卸载和管理Python的包。

virtualenv则可以建立多个独立的虚拟环境,各个环境中拥有自己的python解释器和各自的package包,互不影响。virtualenv 工具可将你系统所安装的 python 程序抽离出来,放在一个特定的目录下,供 python 应用程序例如本文所讲的 moinmoin)使用。这样即便系统中更换了 python 版本,也不会对已部署的 python 应用产生负面影响。

pip和virtualenv可以很好的协同工作,同时使用这两个工具非常方便。

一般先安装pip,安装好后,pip install virtualenv就可以自动从网上下载并安装virtualenv了。然后virtualenv env1就可以创建一个名为env1的虚拟环境了,进入这个虚拟环境后,再使用pip install安装其它的package就只会安装到这个虚拟环境里,不会影响其它虚拟环境或系统环境。

安装pip:

pip下载地址是:

下载后解压,

nginx 与 uwsgi 之上的 moinmoin。tar zxvf pip-1.4.1.tar.gz

cd pip-1.4.1

python setup.py install

安装:virtualenv

pip install virtualenv

如果出现:-bash: pip: command not found,找到pip可执行文件路径:

[[email protected] ~]# find /* -name pip

/usr/local/python27/bin/pip

然后:

[[email protected] ~]# /usr/local/python27/bin/pip install virtualenv

就能成功安装。

二、下载moinmoin 软件包

cd /data/web

wget

tar zxvf moin-1.9.7.tar.gz

cd moin-1.9.7

安装 moinmoin:

######## 构建 python 的隔离环境

# mkdir -p /data/web/moinmoin

# virtualenv /data/web/moinmoin/python-env

######## 激活 python 隔离环境,并将 moinmoin 安装至其中

# cd /data/web/moin-1.9.7

# source /data/web/moinmoin/python-env/bin/activate

# python setup.py install

######## 将 moinmoin 的实例安装至 /data/web/moinmoin/wiki 目录

# cp -r ./wiki /data/web/moinmoin

# cd /data/web/moinmoin/wiki

# cp config/wikiconfig.py ./

# cp server/moin.wsgi ./

######## 关闭 python 隔离环境

# deactivate

完成上述步骤之后,可以发现,拜 virtualenv 工具所赐,所有与 moinmoin 相关的文件均被安装至 /var/www/moinmoin/python-env/share/moin 与 /var/www/moinmoin/python-env/lib/python2.7/site-packages/MoinMoin 目录,而原本它们默认是被安装至 /usr/share/moin 与 /usr/lib/python2.7/site-packages/MoinMoin 目录。

配置 nginx:

server {

listen 80;

server_name localhost;

location ^~ /wiki {

include uwsgi_params;

uwsgi_pass 127.0.0.1:8630;

uwsgi_param UWSGI_PYHOME /data/web/moinmoin/python-env/;

uwsgi_param UWSGI_CHDIR /data/web/moinmoin/wiki/;

uwsgi_param UWSGI_SCRIPT moin_wsgi;

uwsgi_param SCRIPT_NAME /wiki;

uwsgi_modifier1 30;

}

location ^~ /wiki/moin_static/ {

alias /data/web/moinmoin/python-env/lib/python2.7/site-packages/MoinMoin/web/static/htdocs/;

add_header Cache-Control public;

expires 1M;

}

location = /favicon.ico {

log_not_found off;

}

}

下面,大致分析一下上述代码的工作过程。

如果网页浏览器传入的请求是“192.168.0.2/wiki”,那么 nginx 会根据 "location ^~ /wiki" 代码段的设定主要进行以下处理:

加载 /etc/nginx 目录中的“uwsgi_params.conf”文件;

通过 127.0.0.1:8630与 uwsgi 服务器通信,类似于进程管道;

设置 python 运行环境,这里使用的是上文中 virtualenv 工具所构造的 python 目录,其中包含着 python 程序本身以及上文中所安装的 moinmoin 软件包;

设置 uwsgi 服务器在相应 http 请求 /data/web/moinmoin/wiki 目录,这个目录是前文中我们建立的 moinmoin 实例;

设置 uwsgi 服务器要运行的 python 程序,即 moin.wsgi;

设置 uwsgi 服务器所运行的 python 程序对应的 http 请求为

配置 uwsgi:

如果希望直接在命令行中启动 uwsgi,那么只需使用以下命令即可:

uwsgi -x /etc/uwsgi/uwsgi.xml

当然,这需要在 /etc/uwsgi 目录中建立 uwsgi 的配置文件 uwsgi.xml,内容如下:

<uwsgi>

<socket>/tmp/wiki.sock</socket>

<limit-as>256</limit-as>

<processes>6</processes>

<memory-report/>

<vhost/>

<no-site/>

</uwsgi>

本文出自 “galean” 博客,请务必保留此出处

安装以下工具: nginx uwsgi virtualenv nginx和uwsgi搭建另一篇文章: 安装virtualenv,需先安装pip, pip可以很方...

下一篇:没有了