将Pyrhon CMS从Apache移植到Nginx和uwsgi

2024-10-02 04:29:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python编写了一个简单的CMS。它目前运行在Apache上,由/usr/lib/cgi-bin中的一堆python脚本组成。我想让CMS在Nginx工作。我以前从未使用过Nginx,所以我希望熟悉Nginx的人能提供一些帮助。在

我想在不需要修改的情况下运行CMS—理想情况下,我希望能够将CMS与Apache和Nginx一起使用,而且我不想维护两个单独的版本。在

主脚本是/usr/lib/cgi-bin/pyindex.py. 我在/etc/nginx/sites available/default中设置了两个位置:

location / {
    # First attempt to serve request as file, then
    # as directory, then fall back to displaying a 404.
    try_files $uri $uri/dir.html /cgi-bin/pyindex.py?q=$uri;
}

location /cgi-bin/ {
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8080;
}

我安装了uwsgi和uwsgi插件python并设置了/etc/uwsgi/apps/我的域名.com.xml具体如下:

^{pr2}$

当我将浏览器指向任何动态页面时,都会看到以下错误消息:

uWSGI Error

Python application not found

所以看起来nginx成功地将请求传递到uwsgi,但是uwsgi设置不正确。在

登录/var/log/uwsgi/app/我的域名.com.log显示出pyindex.py在uwsgi启动时运行,由于QUERY_STRING环境变量不可用而崩溃。当请求从nginx传递到uwsgi时,脚本不会执行。在

有没有办法把它设置成pyindex.py不在启动时执行,而是在uwsgi收到nginx的请求时执行?在

我在Raspbian上使用nginxv1.2.1、uwsgi 1.2.3、python2.7。在

提前谢谢


Tags: py脚本bincmslibusrapacheetc

热门问题