簡體   English   中英

您將如何設置具有多個虛擬主機的python Web服務器?

[英]How would you set up a python web server with multiple vhosts?

有人告訴我wsgi是可行的方法,而不是mod_python。 但更具體地說,您將如何設置多網站服務器環境? 選擇網絡服務器等?

Apache + mod_wsgi是一個常見的選擇。

這是一個簡單的虛擬主機示例,它設置為將對/ wsgi / something的任何請求映射到應用程序(然后可以查看PATH_INFO來選擇操作,或者您正在分派)。 根URL'/'也被路由到WSGI應用程序。

LoadModule wsgi_module /usr/local/lib/mod_wsgi.so
...

<VirtualHost *:80>
    ServerName                  www.example.com
    DocumentRoot                /www/example/htdocs
    WSGIScriptAliasMatch ^/$    /www/example/application.py
    WSGIScriptAlias      /wsgi  /www/example/application.py
</VirtualHost>

如果願意,可以使用WSGIProcessGroup指令來分隔不同虛擬主機的處理程序。 如果您需要在不同的用戶下運行虛擬主機的腳本,則需要使用WSGIDaemonProcess而不是嵌入式Python解釋器。

application.py將在運行時將WSGI保留為可調用的全局“ application”變量。 您還可以添加“主要運行”頁腳以與老式CGI兼容:

#!/usr/bin/env python
from mymodule import MyApplication

application= MyApplication()

if __name__=='main':
    import wsgiref.handlers
    wsgiref.handlers.CGIHandler().run(application)

我建議將Nginx用於Web服務器。 快速簡便地設置。

您可能希望每個vhost擁有一個unix用戶-因此每個主目錄都擁有自己的應用程序,python環境和服務器配置。 這使您可以簡單地通過殺死您的虛擬主機擁有的工作進程來安全地重新啟動特定的應用程序。

提示,希望對您有所幫助。

您可以使用Apache和mod_wsgi 這樣,您仍然可以使用Apache對vhost的內置支持。

暫無
暫無

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

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