2013-05-19 23 views
2

我在配置nginx以使用Python3.2时遇到了一些问题。我也在努力寻找类似于这个主题的体面教程。但是,我找到了一个体面的教程,让nginx能够和Python2.7一起玩。我的思考过程是,由于uwsgi使用插件,因此遵循Python2.7教程并换出python插件应该是一个相对简单的练习。将nginx配置为使用python3.2

这里是我也跟着得到一个基本的Hello World网站工作教程:https://library.linode.com/web-servers/nginx/python-uwsgi/ubuntu-12.04-precise-pangolin

/etc/uwsgi/apps_available/my_site_url.xml样子:

<uwsgi> 
    <plugin>python</plugin> 
    <socket>/run/uwsgi/app/my_site_urlmy_site_url.socket</socket> 
    <pythonpath>/srv/www/my_site_url/application/</pythonpath> 
    <app mountpoint="/"> 
     <script>wsgi_configuration_module</script> 
    </app> 
    <master/> 
    <processes>4</processes> 
    <harakiri>60</harakiri> 
    <reload-mercy>8</reload-mercy> 
    <cpu-affinity>1</cpu-affinity> 
    <stats>/tmp/stats.socket</stats> 
    <max-requests>2000</max-requests> 
    <limit-as>512</limit-as> 
    <reload-on-as>256</reload-on-as> 
    <reload-on-rss>192</reload-on-rss> 
    <no-orphans/> 
    <vacuum/> 
</uwsgi> 

一旦一切工作安装uwsgi -plugin-python3通过apt-get。 ls -l /usr/lib/uwsgi/plugins/现在输出:

-rw-r--r-- 1 root root 142936 Jul 17 2012 python27_plugin.so 
-rw-r--r-- 1 root root 147192 Jul 17 2012 python32_plugin.so 
lrwxrwxrwx 1 root root  38 May 17 11:44 python3_plugin.so -> /etc/alternatives/uwsgi-plugin-python3 
lrwxrwxrwx 1 root root  37 May 18 12:14 python_plugin.so -> /etc/alternatives/uwsgi-plugin-python 

改变my_site_url.xml pythonpython3python32有同样的效果,即:

  • 世界您好页面需要年龄加载(它是有效instantanious前)然后出现空白
  • 我的网站的访问日志记录访问
  • 我的网站的错误日志记录没有新的错误
  • /var/log/uwsgi/app/my_site_url.log记录以下:

    [PID:4503 |应用程式:0 | REQ:1/2] 192.168.1.5(){42个VARS在630个字节} [太阳5月19日10点49分12秒2013] GET/=>在0毫秒产生的0字节(HTTP/1.1 200)2头65个字节(1个开关核心0)

所以我的问题是:

我怎样才能正确配置此应用程式,在Python3.2

工作

回答

2

列出的教程有以下应用A n个码:

def application(environ, start_response): 
    status = '200 OK' 
    output = 'Hello World!' 

    response_headers = [('Content-type', 'text/plain'), 
        ('Content-Length', str(len(output)))] 
    start_response(status, response_headers) 

    return [output] 

这是不相容与python3.2因为它需要一个字节对象。用以下修补程序替换应用程序功能:

def application(env, start_response): 
    start_response('200 OK', [('Content-Type','text/html')]) 
    return b"Hello World" 
+1

+1好。也许添加一个链接到uwsgi的[快速入门指南](http://uwsgi-docs.readthedocs.org/en/latest/WSGIquickstart.html)? –