nginx+python+fastcgi環境配置(flup版本)


昨天花了一整天的時間研究搭建了nginx+python+fastcgi環境,並測試沒問題,由於是第一次,並且參考了網上很多東西,網上也有很多,但還是把自己的過程記錄下。

       主要感謝這位兄弟的文章給了我很大的幫忙http://blog.csdn.net/linvo/article/details/5870498,不過這位兄弟的測試代碼我沒跑成功。

        一、環境配置主要分以下幾步

        1、Linux環境和python環境(此步驟省略)

        2、Nginx環境、flup、spawn-fcgi工具的部署如下

 

[plain]  view plain  copy
 
  1. wget http://nginx.org/download/nginx-1.2.1.tar.gz  
  2. tar -xzvf nginx-1.2.1.tar.gz  
  3. cd nginx-1.2.1  
  4. ./configure --prefix=/usr/local/nginx-1.2.1 --with-http_stub_status_module --with-http_ssl_module --with-cc-opt='-O2'  
  5. make  
  6. make install  
  7.   
  8. wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz  
  9. tar -xzvf flup-1.0.2.tar.gz  
  10. cd flup-1.0.2  
  11. python setup.py install  
  12.   
  13. http://www.lighttpd.net/download/spawn-fcgi-1.6.3.tar.gz  
  14. tar -xzvf spawn-fcgi-1.6.3.tar.gz  
  15. cd spawn-fcgi-1.6.3  
  16. ./configure  
  17. make  
  18. make install  
  19. 默認位置在/usr/local/bin/spawn-fcgi  

       二、配置nginx.conf支持fastcgi

        具體配置不詳說,下面是配置的一個虛擬主機。/naiveloafer.cgi就是配置的fastcgi,請求會轉發到5678端口的程序,配置好后重啟nginx服務。

 

[plain]  view plain  copy
 
  1. server {  
  2.         listen      83;  
  3.         server_name naiveloafer.xxx.com;  
  4.         access_log  logs/naiveloafer.xxx.com main;  
  5.         location / {  
  6.             root /usr/local/nlweb/htdocs;  
  7.             index index.html index.htm;  
  8.         }  
  9.         location /naiveloafer.cgi {  
  10.             fastcgi_pass 127.0.0.1:5678;  
  11.             include fastcgi.conf;  
  12.         }  
  13.     }  

 

編寫fcgi腳本,並保存為fcgi.py:

 

[python]  view plain  copy
 
  1. #!/usr/bin/env python  
  2. #coding=utf-8  
  3. #author:naiveloafer  
  4. #date:2012-06-07  
  5.   
  6. from flup.server.fcgi import WSGIServer  
  7.   
  8. def naiveloafer_app(environ, start_response):  
  9.     start_response('200 OK', [('Content-Type', 'text/plain')])  
  10.     content = "Hello World!naiveloafer"  
  11.     return [content]  
  12.   
  13. if __name__  == '__main__':  
  14.    WSGIServer(naiveloafer_app).run()  

 

開啟監聽,具體參數見那位兄弟的文章

[plain]  view plain  copy
 
  1. spawn-fcgi -f /usr/local/nlweb/cgi-bin/fcgi.py -a 127.0.0.1 -p 5678 -u nobody -F 5  

 

至此,通過web或者HTTP請求就能從fastcgi返回信息了。但這只是一個具體的配置

具體如何處理請求的參數,獲取請求的數據看


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM