簡體   English   中英

在同一服務器上運行多個Python程序(Ubuntu Server 12.04)

[英]Run multiple Python programs on the same server (Ubuntu Server 12.04)

我正在用Python創建Web服務,並且有一個問題。 我要分離用戶登錄用戶數據。 為此,我正在創建兩個不同的Python程序。

例如:login.py->本地主機:8080 userData.py->本地主機:8081

我的問題是:如何在同一服務器上運行這兩個程序? 是否有易於使用的Python應用程序服務器?

非常感謝你!

如果Web服務器嵌入在應用程序中,則可能要使用某些“看門狗”應用程序來啟動/停止/重新啟動。

Ubuntu使用新貴

我也喜歡使用supervisor

如果應用程序支持某種Web服務器集成協議,例如FCGI或WSGI(Python的標准),則您可能希望使用Web服務器進行部署。 我已經使用apache mod_wsgi很久了,最近我傾向於使用nginx + uwsgi。 Apache是​​一個很好的網絡服務器,但是nginx + wsgi的擴展性更好。

[更新]

應用程序使用Bottle + PyMongo(MongoDB)對擴展性有何建議?

首先,您應該遵循框架文檔中有關部署的建議(瓶在這個主題上不是很冗長,因此我理解您為什么要問)。

B1評論是正確的。 您絕對希望將數據庫和應用程序放置在不同的服務器上。

為了以最小的模糊性獲得最大的可伸縮性,您可能需要查看一些PasS提供程序,例如heroku此處提供了說明 如果您是開發人員而不是系統管理員,那么這特別有意義。

由於您使用的是Ubuntu,因此請使用bash:

./login.py &
./userData.py &

這將在后台運行兩個腳本。

如果您希望這些腳本在關閉外殼后繼續運行:

at now < ./login.py
at now < ./userData.py

龍卷風是一個非常易於使用的應用服務器。 您可以使用不同的請求處理程序在不同的端口上偵聽。

它具有可伸縮性,可以處理數千個連接。 我們使用它來處理控制台服務器。 簡單的hello world代碼確實可以告訴您所有您需要了解的內容。 我添加了另一個HttpServer,以便單個ioloop在兩個不同的端口上處理請求:

import tornado.ioloop
import tornado.web
from tornado.httpserver import HttpServer

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

class OtherHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Goodbye, world")

application1 = tornado.web.Application([
    (r"/", MainHandler),
])
application2 = tornado.web.Application([
    (r"/", OtherHandler),
])

if __name__ == "__main__":
    HttpServer(application1).listen(8080)
    HttpServer(application1).listen(8081)
    tornado.ioloop.IOLoop.instance().start()

http://www.tornadoweb.org/

暫無
暫無

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

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