簡體   English   中英

配置apache以運行python(cgi)

[英]Configure apache to run python (cgi)

我已經在安裝了Apache 2.4.4的wampserver中

我已經安裝了python並且創建了一個測試文件:

#!/Python34/python
print "Content-type: text/html"
print
print "<html><head>"
print ""
print "</head><body>"
print "Hello."
print "</body></html>"

我想知道如何運行此腳本?

我個人不喜歡CGI和所有這些東西的工作方式(緩慢生成進程,需要使用諸如“ fastcgi”之類的技巧來繞開它,等等。)

我認為您可以將Python程序構建為HTTP服務器(例如,使用cherrypy或您想要的任何東西),啟動Python程序以監聽localhost:無論如何,然后從Apache端,只需將代理配置為localhost:隨你。

優點:

  • 無需apache派生每個請求的Python進程(昂貴的操作)
  • 您將輕松更改Web服務器(例如切換到Nginx),因為nginx還支持代理。
  • 您將能夠啟動多個Python服務器並在它們之間進行負載平衡
  • 您將能夠在其他主機上托管python服務器,以實現負載平衡
  • 如果將Varnish放在應用程序前面以緩存結果,則可以完全繞過Apache。
  • Cherrypy可以在更改文件后自動重新加載文件,而無需重新啟動apache。
  • 您將堅持使用HTTP,無需使用諸如fastcgi之類的協議。
  • 無需Apache即可輕松在您的開發機上進行測試,只需將瀏覽器指向本地主機即可:

配置apache 2將您的請求傳遞給python守護程序很簡單:

<VirtualHost *:80>
    ServerName example.com
    ProxyPass / http://localhost:8080/
</VirtualHost>

以及來自cherrypy文檔的世界:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())

+1關於Julien Palard關於不使用CGI的說法,這確實很慢而且效率很低。 獨立運行服務器並使用Apache代理服務器的另一種方法是使用mod_wsgi,它允許您在Apache進程內部運行Python進程。 大多數Web框架(Django,Bottle,Flask,CherryPy,web2py等)都可以很好地工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM