nginx+spawn-fcg 配置webpy

本文解释python如何在nginx+spawn-fcg运行

spawn-fcgi是一个小程序,作用是管理fast-cgi进程,简单小巧,原先是属于lighttpd的一部分,后来由于使用比较广泛,所以就独立项目了.

spawn-fcgi最新下载地址http://redmine.lighttpd.net/news/9

wget http://download.lighttpd.net/spawn-fcgi/releases-1.6.x/spawn-fcgi-1.6.4.tar.gz
tar -zxvf spawn-fcgi-1.6.4.tar.gz
cd spawn-fcgi-1.6.4
./configure #编译
make

1.部署准备

   Nginx (我装的是 version: nginx/1.13.5,  lnmp安装,方便) (需要包含 fastcgi 与rewrite 模块).
              查看nginx版本 ./nginx -v
   Webpy (是Python的一个web框架,它非常简单,非常强大)
   Spawn-fcgi 
   Flup  (它负责接受转发的请求)

2.在网站根目录下新建index.py 我的根目录设置在/home/wwwroot/gpio

  #!/usr/bin/env python
  # -*- coding: utf-8 -*-

 import web

 urls = ("/.*", "hello")
 app = web.application(urls, globals())

class hello:
       def GET(self):
           return 'Hello, world!'

if __name__ == "__main__":
        web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func, addr)
        app.run()
注意:通过执行chmod +x index. py使您的文件可执行。如果它不是可执行的,就会出现错误。

3. Nginx 配置

   #我的conf文件位置: cd /usr/local/nginx/nginx.conf 或  cd /usr/local/nginx/vhost/配置文件
    location / {
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
    fastcgi_param REMOTE_ADDR $remote_addr;
    fastcgi_param REMOTE_PORT $remote_port;
    fastcgi_param SERVER_ADDR $server_addr;
    fastcgi_param SERVER_PORT $server_port;
    fastcgi_param SERVER_NAME $server_name;
    fastcgi_param SERVER_PROTOCOL $server_protocol;
    fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    fastcgi_pass 127.0.0.1:9002;
   }

#配置静态
 location /static/ {
    root /home/wwwroot/gpio;   
    if (-f $request_filename) {
       rewrite ^/static/(.*)$  /static/$1 break;
    }
}
QQ截图20171001115050.png

4.Spawn-fcgi

   开启 :spawn-fcgi -d /home/wwwroot/gpio -f /home/wwwroot/gpio/index.py -a 127.0.0.1 -p 9002 
   关闭: kill `pgrep -f "python /path/to/www/gpio/index.py"`

   你可以运行ps aux | grep index.py 查看运行

   注意,在配置nginx的fastcgi时可能会报错如下:
   child exited with 2
   解决方法: insert #!/usr/bin/env python into header of index.py
   spawn-fcgi child exited with 126
   解决方法: chmod +x upload.py
   child exited with1
   加-n参数  如spawn-fcgi -d //home/wwwroot/gpio -f /home/wwwroot/gpio/index.py -a 127.0.0.1 -p 9002  -n

5.重启nginx

    如果你使用的是lnmp那就太简单了一句即可 lnmp restart
    不过不是lnmp安装nginx,  进入可执行的目录下cd /usr/local/nginx/sbin  输入命令./nginx -s reload 即可

推荐一个linux命令行网站:https://rootopen.com

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.Nginx介绍 Nginx是一个非常轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一...
    cbw100阅读 4,655评论 0 7
  • Nginx + FastCgi + Spawn-fcgi + c 的架构尝试 Php写的很有段时间了,最近看公司一...
    鲍陈飞阅读 8,939评论 0 1
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,893评论 24 1,002
  • 很巧,昨天在电影院看完了《从你的全世界路过》这部电影,今天在当当网上买来的《解忧杂货店》也到了。 说实话我...
    等待戈登阅读 1,950评论 0 1
  • 今天上海下雨,雨中夹杂着些许寒意,像是秋天在宣示对这个九月不可争议的主权。 今天上海的早高峰似乎比以前堵,堵的让人...
    佳鼎海阅读 2,118评论 0 1